MySQL IN()为两个值/数组?

Typ*_*hon 16 mysql

我很难找到一种更好的方法来搜索MySQL中表中的一对值.我有一个数组中的值对,并希望复制IN()函数,但超过1个值.

例如,目的; 我有以下3对:

foo,1
boo,2
goo,3
Run Code Online (Sandbox Code Playgroud)

目前的解决方案让我:

SELECT * FROM [table] WHERE 
(column1 = 'foo' AND column2 = 1) OR
(column1 = 'boo' AND column2 = 2) OR
(column1 = 'goo' AND column2 = 3);
Run Code Online (Sandbox Code Playgroud)

我想有一个更"性感"的解决方案,看到我可以有多达一百对,并且可能有些让我感到恶心.谢谢!!!

Qua*_*noi 42

SELECT  *
FROM    foo
WHERE   (column1, column2) IN (('foo', 1), ('bar', 2))
Run Code Online (Sandbox Code Playgroud)

这种语法可能会令人困惑,用以下内容替换它可能更具可读性:

SELECT  *
FROM    foo
WHERE   ROW(column1, column2) IN (ROW('foo', 1), ROW('bar', 2))
Run Code Online (Sandbox Code Playgroud)

我习惯了前者,但:)