如何编写WHERE语句查询cfmesg字段中含数字加连字符的数据?
筛选含“数字-”格式数据的WHERE语句写法
要定位cfmesg字段中包含数字紧跟连字符的数据,可根据你使用的数据库类型选择对应的WHERE语句:
1. MySQL/MariaDB
使用REGEXP操作符匹配正则模式:
SELECT * FROM your_table WHERE cfmesg REGEXP '[0-9]-';
如果需要确保字段内容完全由“数字+连字符”交替组成(匹配你给出的示例格式),可使用更严格的正则:
SELECT * FROM your_table WHERE cfmesg REGEXP '^[0-9]+(-[0-9]+)+$';
2. PostgreSQL
使用~操作符进行正则匹配:
SELECT * FROM your_table WHERE cfmesg ~ '[0-9]-';
严格匹配示例格式的语句:
SELECT * FROM your_table WHERE cfmesg ~ '^[0-9]+(-[0-9]+)+$';
3. SQL Server
使用PATINDEX函数定位匹配位置:
SELECT * FROM your_table WHERE PATINDEX('%[0-9]-%', cfmesg) > 0;
严格匹配示例格式的语句:
SELECT * FROM your_table WHERE PATINDEX('^[0-9]%(-[0-9]+)+$', cfmesg) > 0;
说明
- 基础语句仅确保字段中存在至少一处“数字+连字符”的组合;
- 严格匹配的正则则限制字段必须以数字开头,之后是至少一组“连字符+数字”的结构,完全符合你给出的
087-2-1-11、56-080这类示例数据的格式。
内容的提问来源于stack exchange,提问作者macunte
相关产品推荐
相关产品推荐

