我有一个名为 friends
的数据库表有 3 列:added_by
, added_who
和 added_time
.
在 PHP 脚本中,我尝试使用如下查询返回特定用户的 friend :
SELECT *
FROM friends
WHERE added_by = '$specific_user_id'
OR added_who = '$specific_user_id';
我如何获取 friend 的用户 ID,因为它可能在 added_by
中。或 added_who
列取决于谁先添加了谁。我知道怎么做很长的路要走,比如检查是否 added_who == $specific_user_id
如果是,那么 friend 的 id 在 added_by
中专栏,反之亦然,但我想知道是否有更快、更好的方法。
最佳答案
使用CASE 语句。有关详细信息,请参阅 CASE 的 MySQL 文档.
应用的一个例子是:
SELECT CASE added_by WHEN '$specific_user_id' THEN added_who ELSE added_by END as friend_id
FROM friends
WHERE added_by = '$specific_user_id'
OR added_who = '$specific_user_id';
关于PHP SQL查询正确的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42631532/