mySql WHERE 语句中的正则表达式
mySql regular expression in WHERE statement
我有一个数据库,我在其中存储了一个代码,它是各种代码的内爆(“|”,$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 * 来自 tra_amounts WHERE coa_codes REGEXP "/100\|.*\|510/"
它显示了 table 的所有结果。
如何编写 RegEx 来匹配代码的某些部分,同时将代码的其他部分保留为通配符?
谢谢!
您听说过 MySQL 的 LIKE
运算符吗?您可能会想到这样的事情:
SELECT *
FROM yourTable
WHERE someCol LIKE '100|%|510;
假设 someCol
有 100|5100|510
和 100|5200|510
作为数据,这个查询将 return 这两个记录。
使用 RLIKE
代替 LIKE
或 =
。
我有一个数据库,我在其中存储了一个代码,它是各种代码的内爆(“|”,$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 * 来自 tra_amounts WHERE coa_codes REGEXP "/100\|.*\|510/"
它显示了 table 的所有结果。
如何编写 RegEx 来匹配代码的某些部分,同时将代码的其他部分保留为通配符?
谢谢!
您听说过 MySQL 的 LIKE
运算符吗?您可能会想到这样的事情:
SELECT *
FROM yourTable
WHERE someCol LIKE '100|%|510;
假设 someCol
有 100|5100|510
和 100|5200|510
作为数据,这个查询将 return 这两个记录。
使用 RLIKE
代替 LIKE
或 =
。