0

簡単なことだと思いますが、インターネットを検索していて答えが見つかりませんでした。1 つ、2 つ、3 つ、4 つ、またはそれ以上のキーワードと、キーワードを検索するための文字列があります。すべてのキーワードに一致する正規表現を探しています。たとえば、次のようになります。

string = "この車は赤く、大きな車輪がついています"

キーワード:車の車輪

戻り値: 真

キーワード:車輪車

戻り値: 真

キーワード:車は赤い

戻り値: 真

キーワード:これは大きい

戻り値: 真

キーワード:車 は 赤 小さい

return: false (文字列に「小さい」単語はありません)

私はそのようなmysqlクエリを使用します:

SELECT name, desc FROM table WHERE CONCAT(name, desc) REGEXP ($keyword1)($keyword2)

しかし、空の文字列を返します。正しい正規表現構文は何ですか?

4

1 に答える 1

2

AND最も簡単な解決策は、 を正規表現から SQLに移動することです。

SELECT name, desc
FROM table
WHERE CONCAT(name, desc) REGEXP ($keyword1)
  AND CONCAT(name, desc) REGEXP ($keyword2)

そうしないと、正規表現にN!可能なすべての順序を長い一連のORステートメントに含める必要があり、その長さは非常に急速に長くなります (5 つのキーワードを使用すると、120 の異なる順序を構築する必要があります!)

于 2012-05-02T13:25:01.030 に答える