SQL | LIMIT条款|没有达到极限

时间:2020-05-06 18:50:25

标签: mysql sql sql-order-by sql-limit

我有以下查询,以便按颜色从table1中获取iPhone,并且仅限于10

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

上面的代码可以正常工作,当table1中的黑色iPhone小于10时,我想用一个查询将table1中也有的红色的iPhone编号填写为10。

1 个答案:

答案 0 :(得分:1)

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

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