1つのクエリで複数の単語を検索するには?

bl4ck120:

私は、次のクエリを使用して簡単なPHPの検索をしようとしています。クエリは最初の単語だけの結果を与えるしかし、これは完璧に動作します。単一のクエリを使用して、すべての3つの単語の組み合わせの結果を取得する方法があるでしょうか?

$stmt = $pdo->prepare("SELECT * FROM walldb WHERE (wallname LIKE :searchq1 OR :searchq2 OR :searchq3) LIMIT :stat, :limt");
GMB:

あなたは繰り返す必要がありexpr like val、パターンを:

WHERE wallname LIKE :searchq1 OR wallname LIKE :searchq2 OR wallname LIKE :searchq3

あなたの元のコードで何happendsは、それは次のように解釈されていることです。

WHERE 
    (wallname LIKE :searchq1)
    OR (:searchq2)
    OR (:searchq3)

彼らが条件であるかのように、基本的には最後の2つの検索用語は、ブール値コンテキストで評価されています。検索用語の一つが始まる場合1、それは真と評価された(そして、テーブルのすべての行が返されます)。他でもない開始があれば1、条件が偽である、したがって、最初の条件は、(あなたが見ているものである)場に出ます。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=19646&siteId=1