mysql 也与其他东西不同
这应该非常简单,但我无法使用搜索找到正确的语法。
我有:
SELECT distinct name, id FROM table1 WHERE length<6;
我想返回所有不同名称的 id 和名称(不是不同的 id,因为无论如何这是一个自动增量),但此查询当前返回所有名称和 id,而不仅仅是不同的名称...
正确的是什么方法来做到这一点?
编辑:长度是另一个列名称,与此处无关。
This should be very simple, but I cannot find the correct syntax using search.
I have:
SELECT distinct name, id FROM table1 WHERE length<6;
I want to return the id's and names of all distinct names (not distinct ids, since thats an auto increment anyway), but this query is currently returning all names and ids, not just the distinct names...
What's the correct way to do this?
Edit: Length is another columns name and not relevant specifically here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
所以听起来您想要不同的名称和任何关联的ID。
DISTINCT
将返回不同的行作为所选列的组合,并且由于id
是自动递增的,这意味着所有行。而是使用聚合。此查询将返回名称以及第一个自动递增的
id
:So it sounds like you want distinct names, and any associated id.
DISTINCT
will return distinct rows as combinations of the selected columns, and sinceid
is auto-increment, that means all rows. Instead use an aggregate.This query will return the name, and the first auto-increment
id
with it:不同的名称:
不同的名称及其所有 id:
不同的名称和最低 id:
不同的名称和(或多或少)随机 id(这仅适用于 MySQL,不适用于其他 DBMS):
Distinct names:
Distinct names and all their ids:
Distinct names and the lowest id:
Distinct names and a (more or less) random id (this works in MySQL only and no other DBMS):
从 table1 中选择 id, name 作为 t0 join
(从 table1 中选择不同的名称)作为 t1
上 t0.name = t1.name;
select id, name from table1 as t0 join
( select distinct name from table1 ) as t1
on t0.name = t1.name;
也许你的意思是
Maybe you mean