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

如何在MySQL中对字符串数组应用UPPER函数

在MySQL中对IN子句的字符串集合应用UPPER函数的方法

直接逐个处理IN中的值

这是最直观的解决方案,对每个要匹配的字符串单独调用UPPER()函数:

SELECT * 
FROM your_table
WHERE col1 IN (UPPER('abc'), UPPER('def'));

MySQL会先将每个字符串转换为大写,再与col1的值进行匹配。

批量处理大量字符串

如果需要匹配的字符串数量较多,推荐用子查询统一处理,结构更清晰易维护:

SELECT * 
FROM your_table
WHERE col1 IN (
    SELECT UPPER('abc') AS val
    UNION ALL
    SELECT UPPER('def') AS val
    UNION ALL
    SELECT UPPER('ghi') AS val
    -- 可继续添加更多需要处理的字符串
);

转换列值实现匹配(注意性能)

如果业务允许,也可以反过来将列值转换为大写,再与原字符串匹配:

SELECT * 
FROM your_table
WHERE UPPER(col1) IN ('ABC', 'DEF');

⚠️ 注意:这种写法会导致col1上的索引失效,若表数据量较大,查询性能会受影响,优先选择前两种方案。

MySQL 8.0.19+ 简化写法

如果使用MySQL 8.0.19及以上版本,可借助VALUES语句简化子查询:

SELECT * 
FROM your_table
WHERE col1 IN (
    SELECT UPPER(v) 
    FROM (VALUES ('abc'), ('def')) AS t(v)
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:41:34