[英]Regex Replace in MySql Select query
我有这个SQL查询:
SELECT * FROM pages WHERE page_title = 'paul_mccartney'
但通常在page_title
该值类似于' paul_mccartney (musician)
'。 在这种情况下,我会返回NULL
。 我的主意是用正则表达式替换(
和)
之间的所有内容,包括()
:
SELECT * FROM pages WHERE REPLACE(REGEXP('/\([^\*].*\)/U'), '', page_title) = 'paul_mccartney'
但这是行不通的。 我的想法可能吗? 如何?
尽管您的问题是关于使用RegEx的,但是您是否研究过MySQL全文搜索功能?
https://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html https://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html
如果您有这样的行,请使用以下教程:
Id title
1 paul_mccartney (musician)
使用提供的示例SQL将返回结果:
SELECT * FROM articles
WHERE MATCH (title) AGAINST ('paul_mccartney' IN BOOLEAN MODE)
您可以尝试一个LIKE
,看看它是如何工作的:
SELECT * FROM pages WHERE page_title LIKE '%paul_mccartney%'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.