针对单个值检查多个 MySQL 列
Posted
技术标签:
【中文标题】针对单个值检查多个 MySQL 列【英文标题】:Checking multiple MySQL columns against a single value 【发布时间】:2013-01-18 16:15:55 【问题描述】:我有一个非常简单的问题:如何根据单个值检查多个 mysql 列?我基本上在寻找 IN (1, 2, 3, 4)
的对立面,人们可以在其中检查单个列与多个值。
我知道我可以写多个句子,但我一直在寻找更优雅的解决方案。我正在使用 php。谢谢!
【问题讨论】:
你为什么不尝试相反的方法。相反的工作。先试后问 【参考方案1】:仅使用 IN,如下所示:
select * from TableName where 2 IN (ColumnOne,ColumnTwo,ColumnThree)
【讨论】:
【参考方案2】:这是你要找的吗?
SELECT *
FROM tableName
WHERE 1 IN (col1, col2, col3, col4)
【讨论】:
谢谢,我还发现这行得通:SELECT * FROM tableNAME WHERE (col1, col2) = value
其实你提供的解决方案有问题。 IN 语句用作 OR 操作数。我需要的是所有列(AND 操作数)都满足条件。
那为什么不执行SELECT * FROM tableName WHERE col1 = 1 AND col2 = 1 AND col3 = 1 AND col4 = 1
?
我知道,我只是在问是否有更优雅的解决方案来解决这个问题,避免让查询变长(我在 PHP 脚本中创建它,条件是一个相当长的类财产)。如果没有类似 IN 的操作数使用 AND 逻辑而不是 OR 逻辑,我想我别无他法。
我需要相同的...但只需要在价值上...WHERE 'value%' IN (col1, col2, col3, col4)
我想运行一个包含大数据的大查询..【参考方案3】:
在where
子句上使用or
逻辑运算符怎么样?
select *
from your_table
where col_a = 'value'
or col_b = 'value'
or col_c = 'value'
or col_d = 'value'
【讨论】:
以上是关于针对单个值检查多个 MySQL 列的主要内容,如果未能解决你的问题,请参考以下文章
PHP PDO 检查 mySQL 表中的多个列并创建不存在的列