如何将多个表列与多个值进行比较?

时间:2015-04-25 14:41:41

标签: mysql performance select where

我有一个包含 N 列的表格,如下所示

  

第1栏|第2栏|第3栏| ...列 N

我有 n 这样的值

  

值1,值2,值3,...值 n

我想将这些 n 值与我的表 N 列进行比较。我能做到的一种方法是:

Select * from table where

column 1 IN (value 1 , value 2 , value 3 , ...value n)
||
column 2 IN (value 1 , value 2 , value 3 , ...value n)
||
column 3 IN (value 1 , value 2 , value 3 , ...value n)
||
.
.
.
column n IN (value1 , value1 , value1 , ...value n)

这是最 最快 的方法吗?

1 个答案:

答案 0 :(得分:2)

在你的情况下没有。

如果可能的话,我建议改变数据库的结构:

表 id |专栏| value_of_column |

日期示例:

1 | column_1 |  zzz
2 | colums_2 | yyyy
3 | colums_1 | yyyy
4 | colums_5 | yyyy
....

然后是您的查询:

select * from table where value_of_column in (value......)