Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在名称字段上,选择ID最低的行_Mysql_Sql_Group By - Fatal编程技术网

Mysql 在名称字段上,选择ID最低的行

Mysql 在名称字段上,选择ID最低的行,mysql,sql,group-by,Mysql,Sql,Group By,我正在进行类似的搜索: select id, company_name from cars where company_name='Audi'; 输出为: +--------+----------------------+ | id | company_name | +--------+----------------------+ | 349115 | Audi | | 349117 | Audi | |

我正在进行类似的搜索:

select id, company_name from cars where company_name='Audi';
输出为:

+--------+----------------------+
| id     | company_name         |
+--------+----------------------+
| 349115 | Audi                 |
| 349117 | Audi                 |
| 349118 | Audi                 |
| 349119 | Audi                 |
| 349120 | Audi                 |
| 349121 | Audi                 |
| 349122 | Audi                 |
| 349123 | Audi                 |
因为我只想看到每家汽车公司一次,所以我:

select id, company_name from cars where company_name='Audi' group by company_name;
以及输出:

+--------+----------------------+
| id     | company_name         |
+--------+----------------------+
| 349115 | Audi                 |
我只返回了一条记录,并且该记录的ID是表中最低的。这就是我想要的。我已经对此进行了测试,如果有多条记录(找到的汽车)用于搜索,
groupby
始终返回ID最低的记录(作为第一条记录输入数据库)


这是一条规则,还是巧合?
groupby
是否总是返回ID最低的记录,因此我可以信赖?

groupby
不保证返回第一行;它从一个或多个不确定行返回值。您不应该使用这种结构,这种结构只有在MySQL中才允许使用

使用
加入
分组方式

select c.*
from cars c join
     (select company_name, min(id) as minid
      from cars
      group by company_name
     ) cc
     on c.id = cc.minid;
如果您有一家公司并且想要一行:

select c.*
from cars c
where company_name = 'Audi'
order by id
limit 1;

不,您不能依赖于此,但您可以在不属于group by子句的列上使用聚合函数,因此您可以将min(id)

设置为id是主键吗?不,不依赖于此。在除MySQL之外的大多数其他RDBMS中,该查询都是语法错误-如果您想要最低的一个,请使用
MIN(id)