【发布时间】:2017-07-26 16:07:01
【问题描述】:
我有一个名为 friends 的数据库表,它包含 3 列:added_by、added_who 和 added_time。
在 PHP 脚本中,我尝试使用如下查询返回特定用户的朋友:
SELECT *
FROM friends
WHERE added_by = '$specific_user_id'
OR added_who = '$specific_user_id';
我如何获取朋友的用户 ID,因为它可能位于 added_by 或 added_who 列中,具体取决于谁先添加了谁。我知道如何做到这一点,例如检查 added_who == $specific_user_id 是否为真,如果它是真的,那么朋友的 id 在added_by 列中,反之亦然,但我想知道是否有更快、更好的方法。
【问题讨论】:
-
是
added_by和类似的行或列吗? -
也许这并不重要,但您使用的是哪个 SQL 数据库引擎? MS SQL Server、MySQL、postgreSQL 等?
-
如果这个问题和PHP有关,我的建议是插入占位符并将数据作为数组传递:
... WHERE added_by = ? OR added_who = ?。 -
我正在使用 MySQL