我有一个使用PHP的排序问题,这里的mysql查询是表结构
用户表:
用户id,用户名,电子邮件
语言表:
langId,langName
用户语言表:
用户id,LANGID
我正在使用以下查询来获得结果
SELECT
users.*
COUNT(*) AS languages
FROM userLanguages JOIN users ON users.userId=userLanguages.userId
WHERE langId IN(1,4)
GROUP BY userId
ORDER BY languages
现在问题是记录没有根据搜索的语言进行排序
示例:
搜索:英语,法语 结果应按以下顺序排序
1.english and french
2.just english或just french
3.english和其他人,或法语和其他(如果有的话)
如果有人帮我解决这个问题,我将非常感谢 感谢。答案 0 :(得分:0)
您可以尝试按字母顺序对langName
进行排序SELECT users.* COUNT(*) AS languages FROM userLanguages JOIN users ON users.userId=userLanguages.userId JOIN languages ON languages.langID=userLanguages.langId WHERE langId IN(1,4) GROUP BY userId ORDER BY languages.langName
但如果您想要其他订单,也许您需要添加"订单" langagues.table中的专栏
(" order"是mysql中的保留字,但你可以命名为#34;排序"例如)