誰かが提案したように、フルテキスト検索を適応させて使用することができます。
このルートを選択する場合は、必要なフィールドで全文検索を有効にする必要があります。
post_titleとpost_body(?)をチェックすると仮定します。これを実行する必要があります;
ALTER TABLE `posts` ADD FULLTEXT KEY `post_search` (`post_title`,`post_body`);
これが完了すると、検索クエリを簡単に編集して次のようになります。
$sql = "SELECT * FROM `posts` WHERE MATCH(post_title,post_body) AGAINST '$search'";
より適切なマッチングが必要な場合は、スコアと順序を指定することもできます。これには、次のようなコードが必要になります。
$sql = "SELECT *, MATCH(post_title, post_body) AGAINST ('{$search}') AS score ".
"FROM `posts` WHERE MATCH(post_title, post_body) AGAINST ('{$search}') ORDER BY `score` DESC";
---メモ
検索するには、どのように検索するかを決める必要があります。
私が同様に使用した最後の例では、検索語のフォーム( "Search"という名前)があり、$ _POST['search']がサーバーに送信されました。
次に使用しました;
$search = (array_key_exists('search', $_POST) && is_string($_POST['search'])) ? mysql_real_escape_string($_POST['search'], $c) : FALSE ;
if ($search) {
// Do the fulltext query requires (See above)
}
全文検索ではハイフンが無視されるため、スペースだけが残ります。これは、スコアリングされた結果を使用することを選択した場合に、全文検索に最適です。