我正在尝试获取所有用户,并通过另一个表上的字段对它们进行排序,但是这个字段并不总是存在?
用户 - 持有用户用户元 - 保存元数据,特别是"权重",这是我正在尝试订购的.
一个更具体的解决方案是自动将它们定义为默认权重,但无论如何我可以使它无需工作吗?当前工作查询:
SELECT * FROM users u, usermeta um
WHERE u.ID = um.ID
AND u.name LIKE '%search_terms%';
Run Code Online (Sandbox Code Playgroud)
部分订单丢失,任何/所有帮助将不胜感激!
如果你有表(之间的键关系u.ID = um.ID),并要列出所有用户,你可以使用类似这样的命令weight上usermeta.
将LEFT JOIN让你把所有用户,无论其存在的usermeta:
SELECT *, IFNULL(um.weight,9999) as newweight
FROM users u
LEFT JOIN usermeta um on u.ID = um.ID
WHERE u.name LIKE '%search_terms%'
ORDER BY IFNULL(um.weight,9999);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3000 次 |
| 最近记录: |