1

对不起,简单的客串。我是 Sql 新手。所以,我有几个 sql 查询,我想在 1 Query 中写这个 sql!

$sql1=select 'max(id) as max1 FROM table where status_id=1 LIMIT 1';
$sql2=select 'max(id) as max2 FROM table where status_id=2 LIMIT 1';
$sql3=select 'max(id) as max3 FROM table where status_id=3 LIMIT 1';
$sql4=select 'max(id) as max4 FROM table where status_id=4 LIMIT 1';

$query1=mysql_query($sql1);
$fetch1=mysql_fetch_array($query1);
$query2=mysql_query($sql2);
$fetch2=mysql_fetch_array($query2);
$query3=mysql_query($sql3);
$fetch3=mysql_fetch_array($query3);
$query4=mysql_query($sql4);
$fetch4=mysql_fetch_array($query4);

echo 'Max ID numbers are:'.$fetch1['max1'].'; '.$fetch2['max2'].'; '.$fetch3['max3'].'; '.$fetch4['max4'].'';

如何在一个查询中使用编写这 4 个 sql 并获取合适的 ID?我试过MYSQL UNION,没有任何结果。

4

2 回答 2

5

使用此查询

SELECT `status_id`, 
       max(`id`) as `max` 
FROM table 
GROUP BY `status_id`

这将为您提供所有对status_id和各自的max(id)per status_id。然后您可以在通常的 ( while) 循环中获取结果。

标准免责声明:mysql_不推荐使用函数。请改用PDOmysqli

于 2013-09-11T07:50:20.120 回答
1

使用group by

select status_id, max(id) as maxValue FROM `table` 
where status_id in (1,2,3,4) group by status_id
于 2013-09-11T07:51:06.000 回答