2017-02-16 65 views
-1

我想知道,如何组where子句的语句,这样我可以在第一组列的类型,然后在第二组是这样的:SQL WHERE子句组列则值

... WHERE (column1a,column2a,colum3a) == (column1b,column2b,column3b) 
... WHERE (column1a,column2a,colum3a) == ("value1","value2","value3") 

代替这

... WHERE column1a = column1b AND column2a = column2b AND column3a = column3b 
... WHERE column1a = "value1" AND column2a = "value2"AND column3a = "value3" 

就像你可以使用“REPLACE”而不是“INSERT”来做同样的事情。

我想这样做,因为它更容易对我来说,它传递的第二种形式,而不是分析column1b,column2b,column3b或“值1,值2,值3”

+1

您正在使用哪个数据库? – GurV

+1

为什么不使用连接并让它们脱离where子句? – SaggingRufus

+0

你希望这样做的原因是什么?可读性?更容易编程构建? – Forklift

回答

1

在MySQL中,你可以使用多列IN条款:

... WHERE (column1a,column2a,colum3a) in ((column1b,column2b,column3b)) 
... WHERE (column1a,column2a,colum3a) in (('value1','value2','value3')) 
+0

谢谢。这看起来可能就是这样。在我测试完成后,我会接受这个答案作为答案。 – ClemsonCoder

+0

感谢这工作 – ClemsonCoder

-1

你不能按列WHERE子句,可以使用GROUP BY。 的WHERE子句过滤器仅记录,你不能做到这一点:

... WHERE column1a = column1b, column2a = column2b, column3a = column3b 

但这:

... WHERE column1a = column1b AND column2a = column2b AND column3a = column3b