PHP SQL查询正确语法
我有一个名为PHP SQL查询正确语法,php,mysql,sql,syntax,Php,Mysql,Sql,Syntax,我有一个名为friends的数据库表,有3列:added\u by,added\u who和added\u time 在PHP脚本中,我尝试使用如下查询返回特定用户的朋友: SELECT * FROM friends WHERE added_by = '$specific_user_id' OR added_who = '$specific_user_id'; 如何获取好友的用户id,因为它可能位于added\u by或added\u who列中,具体取决于谁先添加了谁。我知道怎么做,比
friends
的数据库表,有3列:added\u by
,added\u who
和added\u time
在PHP脚本中,我尝试使用如下查询返回特定用户的朋友:
SELECT *
FROM friends
WHERE added_by = '$specific_user_id'
OR added_who = '$specific_user_id';
如何获取好友的用户id,因为它可能位于
added\u by
或added\u who
列中,具体取决于谁先添加了谁。我知道怎么做,比如检查added\u who==$specific\u user\u id
,如果是真的,那么朋友的id在added\u by
列中,反之亦然,但我想知道是否有更快更好的方法 您可以使用一个简单的IF
语句来进行此操作
SELECT *, IF(added_by = '$specific_user_id', added_who, added_by) AS friend_id
FROM friends
WHERE added_by = '$specific_user_id'
OR added_who = '$specific_user_id';
使用案例陈述。有关更多信息,请参阅的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';
尝试此查询,它是要进行的两个查询之间的简单联合
SELECT added_who FROM friends
WHERE added_by = '$specific_user_id'
UNION
SELECT added_by FROM friends
WHERE added_who = '$specific_user_id'
是由
和类似的行或列添加的吗?也许这并不重要,但您使用的是哪个SQL数据库引擎?MS SQL Server、MySQL、postgreSQL等?如果这个问题与PHP有关,我的建议是插入占位符并将数据作为数组传递:。。。其中以=?或者添加了_who=?
。我正在使用MySQL