You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL如何检查多列存在指定值且不等于另一列的对应值?

问题说明

我有一张包含Option1到Option6共6个字段的表,需要检查这些Option字段中是否存在value1,且该值不等于Result列中的value2。
表结构示意图


现有SQL问题修正

你现有写法存在两个可优化点:

  1. 笔误:Option 5多了空格,应该为Option5
  2. 无通配符的场景下用=代替LIKE,查询效率更高

兼容全数据库的标准写法

SELECT * FROM `table`
WHERE (
    Option1 = 'Apple' 
    OR Option2 = 'Apple' 
    OR Option3 = 'Apple' 
    OR Option4 = 'Apple' 
    OR Option5 = 'Apple' 
    OR Option6 = 'Apple'
) 
AND Result NOT LIKE 'Apple%'

更简洁的简化写法(支持多值IN判断的数据库可用,如MySQL、PostgreSQL)

SELECT * FROM `table`
WHERE 'Apple' IN (Option1, Option2, Option3, Option4, Option5, Option6)
AND Result NOT LIKE 'Apple%'

查询结果示例

查询结果示例图

内容的提问来源于stack exchange,提问作者Terisha Pillay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:36:04