SQL技术问询:如何统计表中Countries列内number=后带数字的记录
统计包含"number="且其后紧跟数字的记录
要统计Countries列中包含子串"number="且后面紧跟数字的记录,替换原来的LIKE语句为正则匹配即可,最终SQL如下:
SELECT COUNT(Countries) FROM NameOfTable WHERE Countries RLIKE '.*number=[0-9]+.*';
关键说明:
- 原语句
LIKE '%number=%'会匹配所有含"number="的字符串,无法排除"number="后非数字的情况。 RLIKE(部分数据库如MySQL支持,部分数据库使用REGEXP作为正则匹配关键字)的规则解析:.*匹配任意长度的任意字符number=精准匹配目标子串[0-9]+匹配1个及以上数字(+确保至少有一个数字存在)- 整个表达式确保字符串任意位置存在"number="后跟数字的结构
如果需要兼容小数(比如示例里的0.9),可以把正则修改为.*number=[0-9]+(\.[0-9]+)?.*,这样整数和小数格式的数字都能匹配到。
内容的提问来源于stack exchange,提问作者BademEm
相关产品推荐
相关产品推荐

