我有这个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'
但它不起作用。我的想法可能与否?怎么样?
答案 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%'