我尝试在 mysql 中使用正则表达式,它运行良好,除非我在单词中使用引号。
例如:
SELECT * FROM table WHERE REGEXP "^pagina's[^[:space:]]*$"
我尝试了以下所有方法:
SELECT * FROM table WHERE REGEXP "^'.preg_quote("pagina's").'[^[:space:]]*$"
和
SELECT * FROM table WHERE REGEXP "^'.addslashes("pagina's").'[^[:space:]]*$"
和
SELECT * FROM table WHERE REGEXP "^'.mysql_escape_real_string("pagina's").'[^[:space:]]*$"
没运气..
由于单词“pagina's”中的单引号('),它不会给我任何结果。
如何转义所有引号,以便 mysql 看到引号文字并匹配数据库中的字段?
** 编辑 **
这是我的 PHP 代码:
$word = "pagina's";
$ary[] = "LOWER(idx.sidx_word) REGEXP '^".preg_quote($word)."[^[:space:]]*$'";