根据所选语言订购记录

时间:2015-02-21 14:44:25

标签: php mysql

我有一个使用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和其他人,或法语和其他(如果有的话)

如果有人帮我解决这个问题,我将非常感谢 感谢。

1 个答案:

答案 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;排序"例如)