mysql - 如何比较多个表列的多个值?

标签 mysql performance select where-clause

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

<小时/>

column 1 | column 2 | column 3 | ...column N

<小时/>

我有 n 个这样的值

<小时/>

value 1 , value 2 , value 3 , ...value 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 | column_1 |  zzz
2 | colums_2 | yyyy
3 | colums_1 | yyyy
4 | colums_5 | yyyy
....

然后是您的查询:

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

关于mysql - 如何比较多个表列的多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29866595/

相关文章:

python - Django.db.utils.OperationalError : (2013, 'Lost connection to MySQL server during query' )

c++ - 如果 catch 不执行任何操作,编译器优化会删除 try/catch block 吗?

c++ - 拆分临界区并两次锁定互斥量是否有助于提高性能?

php - MySQL 获取最受欢迎的标签 ID 组合及其计数

mysql - GROUP_CONCAT 字符串问题

mysql - 我在 Cent 操作系统上安装了 PhpMyAdmin。我可以通过 Windows 8 访问它吗?

PHP 性能测量

sql - 选择前 10 行,然后随机选择其中 5 行

php - MySQL:带有中文和日文字符的 SELECT 语句(空结果?)

mysql - 用他的相对 ID 在表中找到最大值