sql - 正则表达式过滤带点和不带点的数字
问题描述
我有一个包含类别列表的 SQL 表。每个项目都以一个数字(主要类别编号)开头,或者一个数字“点”另一个数字(主要类别编号及其子类别编号)。
例如
10 Main Category A------
10.10 Sub Category A1
10.20 Sub Category A2
20 Main Category B
20.10 Sub Category B1
...
首先,我只需要所有具有主类别编号的条目,在另一个查询中,我必须仅过滤子项,例如以 10 开头并返回所有条目 10.10 和 10.20
我正在制作的程序需要首先选择主类别,然后根据所选的主类别选择子类别。条目(父子)之间的数据库中没有链接,只有一个排序 ID,例如
[0-9][0-9]
我知道,但是如何检查一个可能的(但不存在第三个数字),然后没有后面的点。
解决方案
只有主要类别:[0-9]+ +Category.*
只有子类别:[0-9]+/.[0-9]+ +Sub +Category.*
如果您正在使用 SQL,则使用LIKE
@DanielMarcus 建议的方法可能是可行的方法。
另外,注意[0-9][0-9]
是多余的。尝试[0-9]{2}
(如果期望 0-99 的数字)或[0-9]+
(如果期望任何正整数)
推荐阅读
- java - 如何在多个并行线程中运行单个 testng 测试用例
- c++ - printf() 中 %f 和 %F 的区别?
- c - makefile 中未定义对“func”错误的引用
- c# - 同时运行多个 Selenium Chrome 配置文件
- html - 如何在 html 模式中显示 json 数据
- javascript - android上TextInput的奇怪行为反应原生
- haskell - Haskell 中的阻塞线程
- elixir - 用于播种 JSON 数据的 Ecto 语法
- javascript - javascript 子字符串方法支持整数 - chrome
- http - 进入同一网站时在wireshark上获得不同的结果