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

如何在SQL Server中匹配F1AGE至F20AGE的记录?

解决方案:匹配F1AGE至F20AGE的SQL语句

原语句LIKE '%F[1-9]AGE%'仅能匹配单个数字的场景(F1-F9AGE),要覆盖10-20的两位数字情况,需根据你使用的数据库类型选择对应方案:

1. SQL Server / Oracle 等支持扩展LIKE语法的数据库

可以通过多条件OR组合覆盖所有区间,或使用PATINDEX函数实现精准正则匹配:

方案A:LIKE多条件组合

SELECT * 
FROM TEST 
WHERE QUESTION LIKE '%F[1-9]AGE%'          -- 匹配F1-F9AGE
   OR QUESTION LIKE '%F1[0-9]AGE%'         -- 匹配F10-F19AGE
   OR QUESTION LIKE '%F20AGE%'             -- 匹配F20AGE

方案B:使用PATINDEX函数

PATINDEX支持正则式匹配,可简化为单条件:

SELECT * 
FROM TEST 
WHERE PATINDEX('%F([1-9]|1[0-9]|20)AGE%', QUESTION) > 0

2. MySQL / MariaDB

使用REGEXP(或RLIKE)操作符,通过正则表达式覆盖所有目标模式:

SELECT * 
FROM TEST 
WHERE QUESTION REGEXP 'F([1-9]|1[0-9]|20)AGE'

正则([1-9]|1[0-9]|20)表示三种匹配场景:1-9的单个数字、10-19的两位数字、以及20。

3. PostgreSQL

使用~操作符进行正则匹配:

SELECT * 
FROM TEST 
WHERE QUESTION ~ 'F([1-9]|1[0-9]|20)AGE'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:50:08