数字正则表达式搜索字符串

时间:2016-02-14 20:39:04

标签: mysql regex

我将各种数字存储在MySQL数据库的字符串中,即" 5,15,21"。 如果我搜索数字" 5",我希望脚本向我显示该行,但不要显示其中包含15行的行(当没有" 5"存在时)。这就是我不想使用export class TestPage { showListResult; constructor (protected api: api) { this.api.getData().subscribe(res => this.showListResult = res) } } 的原因。 我可以使用什么注册表达来定位特定的数字。

3 个答案:

答案 0 :(得分:2)

你应该使用逗号分隔符来区分5作为5和5作为15的一部分:

SELECT * FROM table WHERE concat(',' , cell, ',') LIKE '%,5,%'

concat()用于处理案例5是列表中的第一个或最后一个

答案 1 :(得分:1)

以下是替代正则表达式解决方案:

SELECT * FROM table WHERE cell RLIKE '[[:<:]]5[[:>:]]'

[[:<:]]&amp; [[:>:]]是单词边界,这意味着5不会匹配,除非它单独&#34;#34; (不是其他数字的一部分),无论其位置如何

答案 2 :(得分:0)

mysql> SELECT FIND_IN_SET('5', '1,5,15'), FIND_IN_SET('5', '15,25');
+----------------------------+---------------------------+
| FIND_IN_SET('5', '1,5,15') | FIND_IN_SET('5', '15,25') |
+----------------------------+---------------------------+
|                          2 |                         0 |
+----------------------------+---------------------------+