首页 > 解决方案 > 按列对查询中的数据进行排序

问题描述

我有一个查询旨在让所有用户都没有被用户关注。

我想对它们进行排序以匹配他选择的模式 - 模式是一个从 0 到 3 的 json 字符串(例如,[0] / [0,2] / [1,3]...),我想向用户展示最好的结果第一。

例如,如果用户的模式是 [1,3],它将首先向用户显示 [x,1] / [1] / [1,x,x]...,然后是其余的。如果他首先有 [1,2],它将显示相同,然后是 [2,x] 等......然后是其余的。

请注意,如果用户尚未定义任何模式,模式也可能为空。(空字符串是未定义的,而不是 [])。

我尝试按 users.modes 排序,但无论用户的模式是什么,它都会对其进行排序。

SELECT *, users.uid, users.id 
FROM  users 
LEFT JOIN follows 
ON (follows.fid = users.uid AND follows.uid = 3443963) 
WHERE follows.id IS NULL AND users.uid != 3443963 
ORDER BY users.modes DESC 
LIMIT 9

标签: mysql

解决方案


推荐阅读