PHP MySQL ORDER BY无法正常工作

时间:2016-04-03 13:27:32

标签: php mysql

我有一个问题:

$team_member_result = mysql_query("SELECT * FROM teams 
             WHERE team_creator LIKE '%,$player_main_id,%' 
               OR team_owner LIKE '%,$player_main_id,%' 
               OR team_leaders LIKE '%,$player_main_id,%' 
               OR team_captains LIKE '%,$player_main_id,%' 
               OR team_members LIKE '%,$player_main_id,%' 
             ORDER BY team_creator ASC, team_owner ASC, 
                      team_leaders ASC, team_captains ASC, 
                      team_members ASC");

它起作用,但如果该成员不是创建者,则它开始排序无序,所以基本上如果他们是成员,它将在他们成为领导者之前显示。

不知道该怎么做,

谢谢!

1 个答案:

答案 0 :(得分:1)

主要问题是您的表格不在Third normal form中。因此,您尝试开发一个最终不起作用的SQL查询,特别是ORDER BY部分(除了已经提到的带逗号的LIKE过滤器)。

将你的表放在3NF中,然后你可以编写一个有意义的ORDER BY语句。

顺便说一句:不再使用mysql_*()功能,它们是deprecated。请改用PDO