Mysql按照首先存在于连接表中的记录进行排序

时间:2014-12-27 01:10:09

标签: mysql join

我正在寻找一种方法来连接2个表,但是在两个表中记录的结果首先出现在排序中。

说明:

SELECT npcdef.name,npcdef.id, npcinfo.npcid 
from npcdef 
LEFT JOIN npcinfo ON npcinfo.npcid=npcdef.id 
WHERE npcdef.name LIKE '%$npcname%';

如何对结果进行排序,以便npcinfo中存在的记录首先出现,我想这将是一些ORDER BY语句但不确定逻辑。

谢谢

1 个答案:

答案 0 :(得分:2)

使用此ORDER BY子句:

ORDER BY npcinfo.npcid IS NULL

对于npcinfo中的行,npcid不会是NULL,因此npcinfo.npcid IS NULL将是false,即0。对于不在npcinfo中的行,npcid将为NULL,因此此表达式为true,即1