PHP SQL查询正确的语法

时间:2017-03-06 17:10:35

标签: php mysql sql syntax

我有一个名为SELECT REPLACE(field3, ",", "") AS Country, COUNT(field3) FROM `resource` WHERE ref > 0 GROUP BY Country; 的数据库表,其中包含3列:friendsadded_byadded_who

在PHP脚本中,我尝试使用以下查询返回特定用户的朋友:

added_time

如何抓取朋友的用户ID,因为它可能位于SELECT * FROM friends WHERE added_by = '$specific_user_id' OR added_who = '$specific_user_id'; added_by列中,具体取决于谁先添加了谁。我知道如何做到这一点很长,比如检查added_who是否真实,那么朋友的ID是added_who == $specific_user_id列,反之亦然但我想知道如果有更快,更好的方法。

3 个答案:

答案 0 :(得分:1)

使用 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';

答案 1 :(得分:0)

您可以使用简单的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';

答案 2 :(得分:0)

尝试此查询,它是您要创建的2个查询之间的简单联合

 SELECT added_who FROM friends 
 WHERE added_by = '$specific_user_id' 
 UNION 
 SELECT added_by FROM friends
 WHERE added_who = '$specific_user_id'