当前位置: 首页 > 面试题库 >

在MySQL中仅选择唯一的行/记录

商茂勋
2023-03-14
问题内容

我想看看如何只获得具有唯一城市的唯一行/记录,而不关心是否是首都,例如:

Akron
akron
aKRON

只会返回一条记录。

我累了像这样的东西,但是没用

"SELECT DISTINCT(city) AS city,state_prefix,lattitude,longitude  FROM zip_code WHERE city LIKE '$queryString%' LIMIT 10"

谢谢…


问题答案:

您可以使用以下仅用于mysql的技巧:

SELECT city, state_prefix, lattitude,longitude
FROM zip_code WHERE city LIKE '$queryString%'
GROUP BY city, state_prefix -- Here's the trick
LIMIT 10

这将返回 遇到的第一行 的每个独特的价值citystate_prefix

其他数据库将抱怨您的分组依据中未列出未聚合的列或此类消息。

已编辑

以前我声称不使用upper()分组列上的函数将返回所有大小写的变化,但这是不正确的-
感谢SalmanA指出了这一点。我已使用SQLFiddle进行了验证,而您无需使用upper()



 类似资料:
  • 问题内容: 这个问题很简单,由于某种原因我无法获得正确的结果以仅显示重复记录 样本输出 预期产量 我如何做到这一点? 问题答案: sqlfiddle

  • 问题内容: 我想使用第二列(art_count)仅显示那些包含总art_count的X%的行。 我的资料: 到目前为止我的查询: 使用SUM进行了尝试,但未成功。 问题答案: 您需要为插入一个值

  • 问题内容: 假设您有下表(这里关注的列是): 如何只提取每个的第一次出现?结果表将是: 问题答案: mysql对此有一个“作弊”: 这就是你所需要的,因为在MySQL中它可以让你 没有 聚集不分组,按列(其他数据库将抛出一个语法错误),在这种情况下,输出仅对每个第一次出现组由值(S)。不过,请注意,这将无法保证的 方式 中,“第一”发生确定(这将是行只是如何读) 如果您要先出现某个 特定的东西,

  • 问题内容: 我有2个简单的mysql表。前1个称为mail,具有2行: 第二个称为块,并具有1行: 我想从发送鲍勃电子邮件但未在阻止表中阻止的第一个表中选择发件人。因此结果应为: 我尝试了以下查询,但未返回结果: 问题答案: 左联接将产生不匹配的行。 这些是您需要过滤的行。 以固定值进行联接有点麻烦,但是(根据您的表)更常见的联接是:

  • 问题内容: 我在MySql 5中有一个电话号码表。简单的结构是 记录如下 我需要对这些数据进行排序,并将连续的数字块分组为数字范围。我愿意在C#LINQ中实现该解决方案,但服务器端MySql是一等奖。MySql中是否有一种方法可以汇总此数据,以便输出如下所示? 问题答案: 有一个简单的技巧可以将连续的条目折叠成一个组。如果按(row_number-entry)进行分组,则连续的条目将在同一组中结束

  • 本文向大家介绍从MySQL表的列中选择并仅显示一些行,包括了从MySQL表的列中选择并仅显示一些行的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 这是用于选择和仅显示一些行的查询- 这将产生以下输出-