mysql - 如何在一个查询中使 SQL 查询更干净、更好?

标签 mysql sql limit distinct greatest-n-per-group

我有这样的东西:

SELECT cars.brand, cars.id FROM cars WHERE cars.brand = 4 LIMIT 1;
SELECT cars.brand, cars.id FROM cars WHERE cars.brand = 24 LIMIT 1;
SELECT cars.brand, cars.id FROM cars WHERE cars.brand = 29 LIMIT 1;

如果有更多查询,它会很长。 如何以另一种方式,在一行中做到这一点?但对我来说重要的是速度。 cars.brand = X AND LIMIT X 是一个变量,因此它可能会改变。

最佳答案

您担心必须一一发送这么多查询,这样会花费很多时间。您可以改为进行以下一个查询:

SELECT cars.brand, cars.id FROM cars WHERE cars.brand = 4 LIMIT 1
UNION ALL
SELECT cars.brand, cars.id FROM cars WHERE cars.brand = 24 LIMIT 1
UNION ALL
SELECT cars.brand, cars.id FROM cars WHERE cars.brand = 29 LIMIT 1;

关于mysql - 如何在一个查询中使 SQL 查询更干净、更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26480139/

相关文章:

mysql - Codeigniter Active Record - 时间戳的时间大于

javascript - 如何在其他条件下应用 Haversine Formula?

http - 有没有办法在 Tornado 中设置上传文件大小限制?

python - 如何使用python3从mysql检索图像到PyQt4?

mysql - 使用 Docker 为开发环境设置 MySQL

mysql - 将 PHP 数组移植到 MySQL 模式以获得 ACL 授权

python - django get_or_create - 对象列表的性能优化

sql - 如何在 SQL 中从整个数据库中查找特定值

c# - 限制按键事件中小数点后的数字

python - 输出文件中每行的字符数限制