Sql多列命令

时间:2013-03-20 11:21:53

标签: mysql sql

不确定如何在标题上解释这一点,这可能是错误的。
SQL不是我的主要力量,如果这是一个愚蠢的问题,请提前抱歉:) 顺便使用MySql。

我有这个问题:

SELECT
ru.user_id AS "User Id",
ru.first_name AS "First Name"
FROM member_referral_users AS ru
ORDER BY ru.user_id DESC, ru.first_name ASC

结果集如下所示:

result set http://i47.tinypic.com/zlr7z8.jpg

我希望订单为Admin,angelo,emma,emma,carlos,chris,emma

我想订单应该是名字优先但我希望那些用户(真实的客人)在底部,因为他们有0作为user_id

非常感谢所有帮助。

2 个答案:

答案 0 :(得分:5)

SELECT
  ru.user_id AS "User Id",
  ru.first_name AS "First Name"
FROM member_referral_users AS ru
ORDER BY 
  ru.user_id = 0,
  ru.first_name ASC

ru.user_id = 0将被评估为TRUE(= 1)或FALSE(= 0),按ru.user_id = 0排序将把user_id = 0的记录放在底部。

请参阅小提琴here

答案 1 :(得分:0)

SELECT
  ru.user_id    AS "User Id",
  ru.first_name AS "First Name"
FROM member_referral_users AS ru
ORDER BY ru.first_name ASC , ru.user_id ASC