如何选择可能包含交换字段的行?

时间:2013-05-29 16:19:58

标签: php mysql sql database

如何从该表http://i.stack.imgur.com/27cu9.jpg中选择一行,其中'user_1'和'user_2'的值可能如下所示

user_1 user_2
  1      2
  2      1

换句话说,我想选择一个包含2个提交= 1的用户的字段,无论该值在哪个字段中。

3 个答案:

答案 0 :(得分:4)

这是一个执行此操作的简单查询:

select *
from t
where submitted = 1 and 2 in (user_1, user_2)

答案 1 :(得分:0)

如果我理解了您的问题,我认为如果您尝试返回具有相应用户(1,2)和(2,1)的行,则需要JOIN该表:

select t1.*
from yourtable t1 
   join yourtable t2 on 
       t1.user_1 = t2.user_2 and t1.user_2 = t2.user_1

但是,如果您只是想看看用户2是否存在于任一字段中,请查看Gordon的帖子。

答案 2 :(得分:0)

使用: -

       select * from tblname as t1, tblname as t2 where 
       t1.user_1 = t2.user_2 and t1.user_2 = t2.user_1 and t1.user_1<>t1.user_2

编辑: -

更新了查询,以便具有相同值的行不会出现在结果中。