两个值在两个字段中循环

时间:2012-03-26 21:10:09

标签: php mysql sql select

我有一个名为“朋友”的表格,其中包含列person1person2。 我正在使用PHP来检查用户是否是某个人的朋友。我想做一个查询,看看是否:

  • person1是Bob,person2是Jim
  • person1是Jim,person2是Bob

换句话说,我想检查它们是否都存在于同一行。不是吉姆与其他人而不是鲍勃与其他人。 一定是Bob和Jim在同一行。我会用什么查询来获取行?我正在思考以下几点:

SELECT person1, person2 FROM friends WHERE (person1=Jim AND person2=Bob) OR (person1=Bob AND person2=Jim)

当然这在SQL中不起作用,但我正在寻找这些方面的东西。我不希望表中的友谊重复。 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

为了消除重复(Jim / Bob的行和Bob / Jim的'重复'),你需要添加一个case语句:

SELECT CASE WHEN person1 = 'Jim' 
     THEN person1 
     ELSE person2 END AS person1Derivation,
CASE WHEN person2 = 'Bob'
     THEN person2
     ELSE person1 END AS person2Derivation
FROM friends
WHERE (person1 = 'Jim' and person2 = 'Bob') or (person1 = 'Bob' and person2 = 'Jim')