我有以下查询,以便按颜色从table1中获取iPhone,并且仅限于10
SELECT * FROM table1 WHERE color = 'black' LIMIT 10
上面的代码可以正常工作,当table1中的黑色iPhone小于10时,我想用一个查询将table1中也有的红色的iPhone编号填写为10。
答案 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