15

LIKE の使用は、MySQL では非常に一般的です。次のように使用しますWHERE field LIKE '%substring%'。部分文字列があり、フィールドには完全な文字列があります。しかし、私が必要としているのは反対の何かです。フィールドに部分文字列があります。したがって、文字列の部分文字列を含む行が必要です。テーブルが次のとおりであるとします。

----+-------------------
 id | keyword
----+-------------------
  1 | admission
----+-------------------
  2 | head of the dept
----+-------------------

私は user: からの文字列を持っていますTell me about admission infoadmissionこれはユーザー文字列の部分文字列であるため、返されるようなMySQLクエリが必要です。何かのようなもの:

SELECT keyword FROM table WHERE (keyword is a substring of 'Tell me about admission info')

前もって感謝します。

4

3 に答える 3

17

あなたはLIKE演算子を探しています

SQL の単純な正規表現比較を使用したパターン マッチング。1 (TRUE) または 0 (FALSE) を返します。expr または pat のいずれかが NULL の場合、結果は NULL になります。

何かのようなもの

SELECT  keyword 
FROM    table 
WHERE   ('Tell me about admission info' LIKE CONCAT('%', keyword, '%'))

SQL フィドルのデモ

于 2013-09-15T07:31:21.620 に答える
0

次のようなことを試してください:

SELECT CASE WHEN 'Tell me about admission info' 
   LIKE CONCAT('%',`keyword`,'%')
   THEN `keyword` else null END as `keyword`

FROM    table1

WHERE CASE WHEN 'Tell me about admission info' 
  LIKE CONCAT('%',`keyword`,'%')
  THEN `keyword` else null END is not null;

SQL フィドル..

于 2013-09-15T10:35:48.043 に答える