mySQL REGEXP 逗号之间的匹配值

标签 mysql sql regex


在过滤数据库中的条目时,我一直在研究 REGEXP。 我有一个列,其中的值用逗号分隔,如下所示:
id 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...
任何帮助将不胜感激,我认为这个问题对于正则表达式专家来说相当简单!

干杯,
Andreas

最佳答案

您需要阅读 word boundaries .

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

These markers stand for word boundaries. They match the beginning and end of words, respectively. A word is a sequence of word characters that is not preceded by or followed by word characters. A word character is an alphanumeric character in the alnum class or an underscore (_).

关于mySQL REGEXP 逗号之间的匹配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13370263/

相关文章:

mysql - 按照 Sharetribe 安装说明进行操作并收到错误 "ERROR 1064 (42000): You have an error in your SQL syntax;"

mysql - 我如何找出最近 4 周的记录数?

java - 如何找到所有可能的正则表达式匹配

ios - 在 Swift 中使用正则表达式验证 RGB 字符串

php - mysql 日期格式与 jquery 日期格式不工作

mysql - 如何在下面的例子中使用外连接?

sql - 如何在 IF 语句中使用 LIKE 语句?

mysql - 从邮件数据库构建对话列表

SQL:将一行分成多行(规范化)

c# - 在数据表中存储正则表达式 - C#