MySql中的正则表达式替换选择查询

时间:2015-10-23 14:12:04

标签: php mysql sql regex replace

我有这个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'

但它不起作用。我的想法可能与否?怎么样?

2 个答案:

答案 0 :(得分:0)

虽然你的问题是关于使用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)

答案 1 :(得分:0)

您可以尝试LIKE并查看其工作原理:

SELECT * FROM pages WHERE page_title LIKE '%paul_mccartney%'