1


在过滤我的数据库中的条目时,我一直在研究 REGEXP。我有一个用逗号分隔的值的列,如下所示:
id col A
|---|------------------------|
| 1 | P:1,P:2,P:5,P:7 |
| 2 | P:6,P:8,P:10,P:11 |
| 3 | P:4,P:3,P1,P:0 |
| 4 | P:2,P:1 |
|---|-------------|

假设我想要包含值 P:1 的行,我该如何设计 REGEXP 的形式:

SELECT * FROM `table` WHERE `col A` REGEXP '?'

这样我得到第 1 3 和 4 行?我以前的方法是简单地使用:

SELECT * FROM `table` WHERE `col A` LIKE 'P:1'

但是,这自然也会返回第 2 行,因为它在技术上包含 P:1 ...
任何帮助将不胜感激,我认为这个问题对于正则表达式专家来说相当简单!

干杯,
安德烈亚斯

4

1 回答 1

1

您需要阅读单词边界

[[:<:]], [[:>:]]

这些标记代表单词边界。它们分别匹配单词的开头和结尾。单词是前面或后面没有单词字符的单词字符序列。单词字符是 alnum 类中的字母数字字符或下划线 (_)。

于 2012-11-13T22:53:40.867 回答