我正在使用一行来返回特定项目的所有用户,这不是问题。但是,我如何订购它以便第一个结果始终是登录用户。
我看到两种解决方案,我试过这两种解决方案都没有成功:
打印用户名,然后使用if语句仅打印行的其余部分(如果它们与用户名不同)。
print user's name;
if (username !== user's name) {
print this name;
}
连续打印所有内容,但以某种方式对其进行排序,以便当前用户位于顶部。
有什么想法吗?
修改
我现在正在尝试使用以下代码:
$query7 = mysql_query("SELECT users_ID FROM projects_users WHERE projects_id = '$id' AND WHERE users_id <>'$q6[0]'") or die(mysql_error());
但我收到错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE users_id <>'1'' at line 1
我试过了!=而不是&lt;&gt;但我看不出有什么问题!
没关系,修理它。供将来参考,不确定WHERE两次;)
感谢大家的帮助。
答案 0 :(得分:2)
你的第一个解决方案是完美的。
如果您想使用第二个解决方案,您应该像这样构建SQL查询:
(SELECT * FROM user WHERE id = :currentUserID) UNION (SELECT * FROM user)
你很好
答案 1 :(得分:1)
我认为你可以用一个简单的mysql查询来做到这一点:
SELECT * FROM table_name ORDER BY FIELD(username, 'username');
要了解更多信息: http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html
答案 2 :(得分:1)
如果你想使用php,你可以试试这样的东西
$currentuser = "";
$otherusers = "";
if(username == user's name)
{
$currentuser = username;
}
else
{
$otherusers .= username;
}
echo $currentuser;
echo $otherusers;
答案 3 :(得分:1)
SELECT *
FROM USERS
ORDER BY (CASE user_id WHEN :currentUserID THEN 1 ELSE 2 END);