正则表达式mysql查询specfic字符串

时间:2018-02-01 19:56:55

标签: php mysql regex

你好我试图用mysql regex serach query

搜索ddw_0_op1
SELECT * FROM wp_postmeta WHERE meta_key RLIKE '(?=.*ddw_)(?=.*_op1)'

但在结果中它还显示了该字段的结果

_ddw_0_op1

但我想仅显示此字段ddw_0_op1的结果。我怎么能做到这一点 enter image description here 在这张图片中我想要来自http链接字段的结果 我希望现在有意义

1 个答案:

答案 0 :(得分:1)

使用INDEX(meta_key),这可能会更快:

WHERE meta_key LIKE   'ddw_%_op1'
  AND meta_key RLIKE '^ddw_[[:digit:]]+_op1$'

首先LIKE(没有前导通配符)可以使用索引。然后RLIKE将验证只有数字位于中间(不使用索引)。

由于这有点像WP模式,因此wp_postmeta上还有一些tips。 (提示不会加快你的ddw查询,但可能会帮助其他人。)