sql >> データベース >  >> RDS >> Mysql

Php /MySql'高度な検索'ページ

    MySQL全文検索 の使用をお勧めします。 これをブール全文検索 で使用する 希望する結果を得ることができるはずの機能。

    編集:

    要求された条件に基づいて要求された例(「これは1つのフィールドであり、4つのオプション(つまり、1単語、正確な単語、少なくとも1単語、用語なし)のいずれかを選択できます。」)

    最初の投稿に基づいてphpを使用していると想定しています

    <?php
    $choice = $_POST['choice'];
    $query = $_POST['query'];
    
    if ($choice == "oneWord") {
        //Not 100% sure what you mean by one word but this is the simplest form
        //This assumes $query = a single word
        $result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('{$query}' IN BOOLEAN MODE)");
    } elseif ($choice == "exactWords") {
        $result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('\"{$query}\"' IN BOOLEAN MODE)");
    } elseif ($choice == "atLeastOneWord") {
        //The default with no operators if given multiple words will return rows that contains at least one of the words
        $result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('{$query}' IN BOOLEAN MODE)");
    } elseif ($choice == "withoutTheTerm") {
        $result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('-{$query}' IN BOOLEAN MODE)");
    }
    ?>
    

    これがブール値の一致で演算子を完全に使用するのに役立つことを願っています。ブール全文検索



    1. アクティブな接続がある場合にPostgreSQLデータベースを削除するにはどうすればよいですか?

    2. OracleのデフォルトのDATE形式

    3. 優先IDのリストでmysqlの結果を並べ替えるにはどうすればよいですか?

    4. MySQL Workbenchでデータベーススクリプト全体を生成するにはどうすればよいですか?