【发布时间】:2020-06-17 06:20:15
【问题描述】:
我在表中有一个 varchar 列,我需要在该列中找到与模式匹配的所有值。模式是 parta-partb-partc 或 parta-partb-positiveInteger-partc。除了数字部分,一切都是固定的。 例如
**someColumn**
parta-partb-partc
parta-partb-1-partc
parta-partb-1xyz-partc
parta-partb-123-partc
parta-partb-abc-partc
我的搜索查询应该返回
parta-partb-partc
parta-partb-1-partc
parta-partb-123-partc
到目前为止,这是我得到的
SELECT *
FROM tableName
WHERE
someColumn ='parta-partb-partc'
OR someColumn LIKE 'parta-partb-%[0-9]-partc'
我无法构造 LIKE 部分以仅获取介于两者之间的正数字符串。
【问题讨论】:
-
你使用的是哪个数据库?
-
hsqlserver 用于测试,但可以在生产中使用 sqlserver、oracle 或 mysql 中的任何一个
-
功能会因数据库而异。如果您能推荐一个合适的数据库,可以为您提供解决方案
-
我不能确定客户可能使用什么数据库。在这种情况下你有什么建议?我应该通过 someColumn LIKE 'parta-partb-%-partc' 引入值并使用 java 正则表达式过滤掉不需要的值吗?
标签: mysql sql sql-server sql-like