1

Web サイトの検索機能を作成しようとしています。MySQL では、単語を正確に一致させたいと考えています。たとえば、次のタイトルの投稿がいくつかある場合です。

ある日

来る日

次の検索文字列があります。

SELECT title
        FROM posts
        WHERE title LIKE '%in%'
        ORDER BY Date
        DESC

LIKE用語は最初の行と 2 番目の行の%in%両方に表示されるため、両方の行が返されます。incoming

しかし、最初の行のみが返されるように、単語全体に一致するようにしたいだけです。

これは可能ですか?

4

2 に答える 2

1

MySQL の単語境界 REGEXP を探しています。

SELECT title
  FROM posts
  WHERE title REGEXP '[[:<:]]in[[:>:]]'

MySQL ドキュメントから:

これらのマーカーは、単語の境界を表します。それぞれ、単語の先頭と末尾に一致します。単語は、単語文字が前後にない一連の単語文字です。

http://dev.mysql.com/doc/refman/5.1/en/regexp.html

于 2013-04-13T23:33:17.170 に答える
0

次のようにします。

SELECT title
    FROM posts
    WHERE title LIKE '% in %'
    ORDER BY Date
    DESC

それが単語の場合、問題の単語の前後にスペースがあると確信しています。

于 2013-04-13T23:29:20.273 に答える