SQL |限制条款 |未达到限制

SQL | LIMIT Clause | limit not achieved

我有以下查询按颜色从表 1 中获取 iPhones 并限制为 10

SELECT * FROM table1 WHERE color = 'black' LIMIT 10

上面的代码完美运行,当 table1 中的黑色 iPhones 小于 10 我想用红色完成 iPhone 的数字到 10 我也在 table1 中一个查询

您可以对两种颜色进行过滤,并进行条件排序:

SELECT * 
FROM table1 
WHERE color in ('black', 'red')
ORDER BY color = 'red'
LIMIT 10

条件 color = 'red' 满足时产生 1,否则 0 - 所以这实际上将 'black' 放在第一位。

您也可以在此处使用 field()

SELECT * 
FROM table1 
WHERE color in ('black', 'red')
ORDER BY FIELD(color, 'black', 'red')
LIMIT 10