开发者社区> 问答> 正文

检查多个列的一个值?mysql

我有一个表,其中包含像这样的列:

id,col1,col2,col3,col4 现在,我想检查ANY的col1, col2, col3, col4具有价值的传递。

做这件事的路很长。

SELECT * FROM table WHERE (col1 = 123 OR col2 = 123 OR col3 = 123 OR col4 = 123); 我猜这是的相反版本IN。

有更简单的方法来做我想要的吗?

展开
收起
保持可爱mmm 2020-05-17 21:19:00 1172 0
1 条回答
写回答
取消 提交回答
  • 您可以使用IN谓词,如下所示:

    SELECT * FROM table WHERE 123 IN(col1, col2, col3, col4); SQL小提琴演示 它是IN的相反版本。

    不,不是,它与OR您在问题中的使用方式相同。

    为了澄清这一点: 谓词IN或集合成员资格定义为1:

    在此处输入图片说明

    其中Value Expression可以是2:

    在此处输入图片说明

    因此,使用值表达式123(即字面量)可以这样做。来源:stack overflow

    2020-05-17 21:27:54
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像