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