次のMySQLクエリがあります。
SELECT title, description
FROM some_table
WHERE MATCH (title,description) AGAINST ('+denver (REGEXP "[[:<:]]colorado[s]*[[:>:]]")' IN BOOLEAN MODE);
ここでの「正規表現」は、「完全な単語」コロラド(末尾の「s」の有無にかかわらず)を検索します。
実際には、( "denver")AND("colorado"または"colorados")を持つ行のみを選択したいと思います。しかし、正規表現に「+」を付けることはできません。試しましたが、要件に一致する行がテーブルにありますが、結果は0になりました。
「+」をREGEXPの使用に対して機能させる方法についてのアイデアはありますか?これは、「denver」と「colorado」がselectステートメントの作成に使用する変数の値であるPHPスクリプト内から作成しています。
私のPHP/MySQLスクリプトは次のようになります。
SELECT title, description
FROM some_table
WHERE MATCH (title,description) AGAINST ('+$var1 (REGEXP "[[:<:]]$var2[s]*[[:>:]]")' IN BOOLEAN MODE);