mysql - 按列对查询中的数据进行排序
问题描述
我有一个查询旨在让所有用户都没有被用户关注。
我想对它们进行排序以匹配他选择的模式 - 模式是一个从 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