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

MySQL中如何将LIKE运算符匹配的同类值合并为统一名称返回?

你可以通过CASE条件判断语句实现字段值的统一映射,结合DISTINCT去重即可达到需求,参考实现如下:

SELECT DISTINCT
  CASE
    WHEN ostype LIKE '%android%' THEN 'Android'
    WHEN ostype LIKE '%ios%' OR ostype LIKE '%iOS%' THEN 'iOS'
  END AS ostype
FROM prus
WHERE ostype LIKE '%android%' OR ostype LIKE '%ios%' OR ostype LIKE '%iOS%';

如果你的MySQL实例排序规则默认不区分大小写,还可以通过LOWER()函数转小写后匹配,简化判断逻辑,避免重复适配大小写差异:

SELECT DISTINCT
  CASE
    WHEN LOWER(ostype) LIKE '%android%' THEN 'Android'
    WHEN LOWER(ostype) LIKE '%ios%' THEN 'iOS'
  END AS ostype
FROM prus
WHERE LOWER(ostype) LIKE '%android%' OR LOWER(ostype) LIKE '%ios%';

逻辑说明

  • CASE WHEN会逐行匹配ostype的内容,命中对应规则就返回你指定的统一标准化值
  • 外层的DISTINCT会对映射后的结果去重,最终仅返回Android、iOS两行结果
  • 如果你不需要去重,仅需要对原表所有符合条件的行做ostype字段值标准化,去掉DISTINCT关键字即可

你也可以用IF嵌套简化写法,逻辑完全一致:

SELECT DISTINCT
  IF(LOWER(ostype) LIKE '%android%', 'Android', 'iOS') AS ostype
FROM prus
WHERE LOWER(ostype) LIKE '%android%' OR LOWER(ostype) LIKE '%ios%';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:15:03