MySQL选择首先显示具有特定值的行

时间:2014-11-01 22:15:42

标签: mysql

SELECT userid, name
FROM users 
WHERE nationality="US" 
ORDER BY name

假设我希望首先显示userid=101nationality="US“的用户,无论如何都要显示,并且使用一个查询进行此操作非常重要。

3 个答案:

答案 0 :(得分:5)

尝试FIELD

SELECT userid, name FROM users WHERE nationality="US" ORDER BY FIELD(user_id,101) DESC, name asc

Field Documentation

答案 1 :(得分:0)

试试这个:

SELECT * FROM (
    SELECT userid, name, IF(user = 101, 1 , 2) AS rank 
    FROM users WHERE nationality = "US"
) AS subselect ORDER BY subselect.rank ASC, subselect.name ASC

答案 2 :(得分:0)

或者你可以这样做:

SELECT userid, name, (userid=101) AS test FROM users WHERE nationality="US" ORDER BY test DESC, name ASC