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

MySQL条件查询需求:基于LIKE匹配的价格字段处理逻辑

调整后的MySQL实现方案

嘿,我来帮你搞定这个SQL逻辑调整的需求~ 这里我们可以用MySQL的CASE WHEN语句来实现多条件分支判断,完美适配你的要求:

SELECT 
    CASE
        -- 先判断匹配%|ss|24|%的情况,直接返回0
        WHEN prices LIKE "%|ss|24|%" THEN 0
        -- 匹配%|ss|2|%时,沿用原逻辑:price为空则返回0,否则返回price
        WHEN prices LIKE "%|ss|2|%" THEN IF(price IS NULL, 0, price)
        -- 可选:如果还有其他情况,这里可以定义默认返回值,比如沿用原逻辑
        ELSE IF(price IS NULL, 0, price)
    END AS adjusted_price
FROM trips 
WHERE id = 9 
  AND (prices LIKE "%|ss|2|%" OR prices LIKE "%|ss|24|%");

几个关键细节要注意

  • 条件顺序优先级:一定要把%|ss|24|%的判断放在前面!如果某条记录的prices字段同时包含|ss|2|和|ss|24|,CASE WHEN会执行第一个匹配的分支,这样能确保这种情况优先返回0,符合你的需求。
  • 空值判断语法修正:原SQL里的price == null是错误写法,MySQL中判断字段是否为空必须用price IS NULL,==不是合法的空值判断语法哦。
  • WHERE子句的筛选逻辑:用OR连接两个LIKE条件,确保只查询符合这两种模式的记录;如果你的业务需要保留其他记录,也可以去掉这个OR条件,根据实际场景调整。

内容的提问来源于stack exchange,提问作者Ulasoft Koinot Uz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:57:50