我很难找到一种更好的方法来搜索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)
我习惯了前者,但:)
归档时间: |
|
查看次数: |
5211 次 |
最近记录: |