【问题标题】:Mysql ordering by records that exist in joined table firstMysql首先按连接表中存在的记录排序
【发布时间】:2014-12-27 09:19:59
【问题描述】:

我正在寻找一种方法来连接 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 语句,但不确定逻辑。

谢谢

【问题讨论】:

  • 查询只会返回出现在两个表中的记录,所以这个问题没有意义。
  • 对不起,刚刚注意到我已经修改了它:)

标签: mysql join


【解决方案1】:

使用这个ORDER BY 子句:

ORDER BY npcinfo.npcid IS NULL

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

【讨论】:

    猜你喜欢
    • 2017-12-17
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 2018-11-09
    相关资源
    最近更新 更多