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

複数列の名前検索MySQL

    ここでの最善の策は、2つのフィールドを含むフルテキストインデックスを作成することです

    ステップ1)3ワードだけでストップワードファイルを作成する

    echo "a"> /var/lib/mysql/stopwords.txt
    echo "an">> /var/lib/mysql/stopwords.txt
    echo "the">> / var / lib / mysql / stopwords.txt

    ステップ2)これらのオプションを/etc/my.cnf

    に追加します

    ft_min_word_len =2
    ft_stopword_file =/ var / lib / mysql / stopwords.txt

    手順3)名前の名前の列にFULLTEXTインデックスを作成する

    ALTERTABLEユーザーはFULLTEXTfirst_last_name_index(first、last);

    を追加します

    ステップ4)検索にMATCH関数を実装します

    このようなもの:

    SELECT * FROM users WHERE(MATCH(first、last)AGAINST('John' IN BOOLEAN MODE))AND(MATCH(first、last)AGAINST('Doe' IN BOOLEAN MODE));

    フルテキストインデックスの詳細については、ここをクリックしてください




    1. mysqlは、要約も使用しながらすべての行を取得します

    2. n分ごとに関数を呼び出すようにタイマーを設定するにはどうすればよいですか?

    3. 挿入ステートメントを使用してユニコード文字をmysqlに挿入するにはどうすればよいですか?

    4. MariaDBでのRTRIM()のしくみ