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:]]*$'";