WHERE语句中的mySql正则表达式

时间:2016-11-23 16:01:42

标签: php mysql regex wildcard

我有一个数据库,我存储的代码是各种代码的内爆(“|”,$ array)。所以结果将是这样的:

  • 100 | 5100 | 510
  • 100 | 5200 | 510
  • 410 | 5200 | 520
  • 100 | 790 | 5100 | 320

我想写一个正则表达式来搜索mySQL以寻找来自PHP的匹配...我可能有100 | * | 510这样的东西给我看100 | 5100 | 510和100 | 5200 | 510。此RegEx适用于PHP:

/ 100 \ |(?:*)\ | 510 /

但它在mySQL中不起作用。我找到了答案?:不起作用,所以如果我删除它并使用

/ 100 \ |。* \ | 510 /

即。查询是: SELECT * FROM tra_amounts WHERE coa_codes REGEXP“/ 100 \ |。* \ | 510 /”

显示表中的所有结果。

如何编写RegEx以匹配代码的某些部分,同时将代码的其他部分保留为通配符?

谢谢!

2 个答案:

答案 0 :(得分:1)

您是否听说过MySQL的LIKE运营商?这样的事情可能就是你的想法:

SELECT *
FROM yourTable
WHERE someCol LIKE '100|%|510;

假设someCol100|5100|510100|5200|510作为数据,此查询将返回这两个记录。

答案 1 :(得分:0)

使用RLIKE代替LIKE=