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

Mysql SQL |限制条款|未达到限制,mysql,sql,sql-order-by,sql-limit,Mysql,Sql,Sql Order By,Sql Limit,我有以下查询,从表1中按颜色获取iPhone,最多10个 SELECT * FROM table1 WHERE color = 'black' LIMIT 10 上面的代码工作得很好,当表1中的黑色iPhone少于10时,我想在一次查询中用红色将iPhone的号码改为10,表1中也有红色,您可以对这两种颜色进行过滤,并进行条件排序: SELECT * FROM table1 WHERE color in ('black', 'red') ORDER BY color = 'red' LIM

我有以下查询,从表1中按颜色获取iPhone,最多10个

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

上面的代码工作得很好,当表1中的黑色iPhone少于10时,我想在一次查询中用红色将iPhone的号码改为10,表1中也有红色,您可以对这两种颜色进行过滤,并进行条件排序:

SELECT * 
FROM table1 
WHERE color in ('black', 'red')
ORDER BY color = 'red'
LIMIT 10
条件
color='red'
在满足时产生
1
,否则
0
——因此这实际上将
黑色置于首位

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

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

谢谢,它起作用了。。我想知道是否有任何其他的方法来做同样的工作,如果语句或类似的东西that@EmmaGrove:嗯,你可以通过IF(color='black',0,1)
来进行排序。。。但是上面的表达式更简单。