当前位置: 首页 > 面试题库 >

仅按字段排序(如果存在)

管玉堂
2023-03-14
问题内容

我正在尝试获取所有用户,并通过另一个表上的字段对他们进行排序,但是此字段并不总是存在吗?

用户-持有用户用户元-持有元数据,特别是“权重”,这是我要根据其排序的内容。

一个更具体的解决方案是自动为它们定义默认权重,但是无论如何,我可以使它不起作用吗?当前工作查询:

SELECT * FROM users u, usermeta um 
WHERE u.ID = um.ID 
  AND u.name LIKE '%search_terms%';

失去部分订单,任何/所有帮助将不胜感激!


问题答案:

如果您在表(u.ID = um.ID)之间具有关键关系,并且想要列出所有用户,则可以使用类似的方法weight对on进行排序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);


 类似资料:
  • 我想按字段存在对我的ES搜索结果进行排序,假设我得到了字段“价格”,并希望所有有价格的结果都在顶部,所有没有价格的结果都在底部。我知道你可以做一个简单的排序并添加“缺失”:“_last”,例如: {“sort”:[{price':{missing':'u last',order':'asc'}}]} 但在这种情况下,结果也将按价格排序,我不想要它。 没有脚本有办法做到吗?

  • 问题内容: 我有一个用户模型和一个提交模型。每个提交都有一个上载用户的外键字段user_submitted。 我的问题很简单:如何获得提交量最多的三个用户的列表? 我尝试在用户模型上创建num_submissions方法: 然后执行: 但这失败了,就像我尝试过的所有其他尝试一样。我实际上可以使用智能数据库查询吗?还是我应该在视图文件中做些更怪异的事情? 问题答案: 你没有在示例模型代码中提及,但在

  • 问题内容: 我想按(不修改日期时间)将其排序(不修改日期时间),否则按(不发布日期时间)排序 问题答案: 似乎我每周在这里就此给出3条建议,也许我应该放弃并放任它:-)不,我不这么认为: __ 如果希望数据库很好地扩展,请 不要 在列计算(或子句)中使用逐行函数。你应该为你的具体情况检查性能( 测量,不要猜测 ),但是当做计算 读取 数据库通常会影响你的能力,规模(这不会不管你的通讯录数据库,但我

  • 问题内容: 有一个字段’noticeBy’枚举(’email’,’mobile’,’all’,’auto’,’nothing’)NOT NULL默认’auto’。众所周知,按ENUM字段排序相对于其索引执行。但是,如何通过其值进行排序? 问题答案: 如“ 排序”中所述: 值根据其索引号排序,索引号取决于列规范中列出的枚举成员的顺序。例如,在for 之前排序。空字符串排在非空字符串之前,值排在所有其

  • 问题内容: 我如何对数组进行排序: 数组结构可能类似于: 那么数据是根据数组的 标题字段* 以 ASC顺序 显示的吗? * 问题答案: 为此使用显式构建的用途。

  • 好吧,我有以下几个Shemas: 我想要的是让用户跟踪品牌,按品牌名排序,所以对于这样做,我对FollowAction进行查询,找到用户所做的所有FollowAction,然后填充brand字段。 所以问题是我不能为品牌名的查询排序,我知道的唯一方法是返回所有文档并从nodejs应用程序中对它们进行排序。有人知道我怎么能那样做吗??或者我是否应该改变shema结构?? 我所做的查询是: