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

使用SQL Where子句匹配多段数字字符串未得到预期结果怎么办

问题原因

你写的LIKE语句无法生效有两个核心原因:

  1. 标准SQL的LIKE操作符仅支持%(匹配任意长度任意字符)、_(匹配单个任意字符)两种通配符,你用到的[0-9.,]是正则表达式语法,仅部分数据库对LIKE做了自定义扩展才支持该规则。
  2. 即使是支持[]匹配的数据库,你的写法也仅能匹配单个数字、小数点或逗号,无法匹配1000、10,5这类多字符组成的数值,自然匹配不到目标格式。

解决方案

主流数据库均支持正则匹配功能,直接用正则匹配数字/数字/数字格式即可,不同数据库的写法如下:

MySQL / MariaDB

SELECT * FROM table_a 
WHERE table_a.value REGEXP '[0-9.,]+ / [0-9.,]+ / [0-9.,]+'
LIMIT 3;

PostgreSQL

SELECT * FROM table_a 
WHERE table_a.value ~ '[0-9.,]+ / [0-9.,]+ / [0-9.,]+'
LIMIT 3;

Oracle

SELECT * FROM table_a 
WHERE REGEXP_LIKE(table_a.value, '[0-9.,]+ / [0-9.,]+ / [0-9.,]+')
FETCH FIRST 3 ROWS ONLY;

SQL Server(2017及以上版本)

SELECT TOP 3 * FROM table_a 
WHERE REGEXP_MATCHES(table_a.value, '[0-9.,]+ / [0-9.,]+ / [0-9.,]+');

正则说明:[0-9.,]+表示匹配1个及以上的数字、小数点或逗号,正好对应你需求里的整数、带小数/逗号的数值格式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:51:02