我有一张消息表。我试图在表中找到具有符合特定格式的ID代码的消息。我在下面的正则表达式是为了在PHP中匹配这些值而编写的,但我想将它移到MySQL查询中。
正在寻找标识符代码的特定格式,如下所示:
[692370613-3CUWU]
代码格式一致:
我的查询内容为:
SELECT * FROM messages
WHERE
msgBody REGEXP '\\[(\d){9,}-([A-NP-Z1-9]){5}\\]'
OR
msgSubject REGEXP '\\[(\d){9,}-([A-NP-Z1-9]){5}\\]'
我在表格中创建了一个测试行,该测试行在msgBody字段中只有上面的示例值用于测试 - 但它不会返回任何结果。
我猜我在PHP样式regex与MySQL的转换中缺少一些东西。
非常感谢帮助。
谢谢!
答案 0 :(得分:1)
而不是\d
尝试使用[[:digit:]]
答案 1 :(得分:1)
SELECT * FROM messages
WHERE
msgBody REGEXP '\\[([0-9]){9,}-([A-NP-Z1-9]){5}\\]'
OR
msgSubject REGEXP '\\[([0-9]){9,}-([A-NP-Z1-9]){5}\\]'