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

キーワードを含む文字列を使用したPHPでのMySql全文検索

    MySQL として マニュアルによると:

    例の表を見てみましょう:

    mysql> select * from articles;
    +----+-----------------------+------------------------------------------+
    | id | title                 | body                                     |
    +----+-----------------------+------------------------------------------+
    |  1 | PostgreSQL Tutorial   | DBMS stands for DataBase ...             |
    |  2 | How To Use MySQL Well | After you went through a ...             |
    |  3 | Optimizing MySQL      | In this tutorial we will show ...        |
    |  4 | 1001 MySQL Tricks     | 1. Never run mysqld as root. 2. ...      |
    |  5 | MySQL vs. YourSQL     | In the following database comparison ... |
    |  6 | MySQL Security        | When configured properly, MySQL ...      |
    +----+-----------------------+------------------------------------------+
    
    mysql> SELECT * FROM articles WHERE MATCH (title,body)
         AGAINST ('"database comparison"' IN BOOLEAN MODE);
    
    +----+-------------------+------------------------------------------+
    | id | title             | body                                     |
    +----+-------------------+------------------------------------------+
    |  5 | MySQL vs. YourSQL | In the following database comparison ... |
    +----+-------------------+------------------------------------------+
    

    単語が引用されている場合、順序は重要です:

    mysql> SELECT * FROM articles WHERE MATCH (title,body)
         AGAINST ('"comparison database"' IN BOOLEAN MODE);
    
    Empty set (0.01 sec)
    

    引用符を削除すると、「データベース」または「比較」という単語を含む行が検索されます。

    mysql> SELECT * FROM articles WHERE MATCH (title,body)
         AGAINST ('database comparison' IN BOOLEAN MODE);
    
    +----+---------------------+------------------------------------------+
    | id | title               | body                                     |
    +----+---------------------+------------------------------------------+
    |  1 | PostgreSQL Tutorial | DBMS stands for DataBase ...             |
    |  5 | MySQL vs. YourSQL   | In the following database comparison ... |
    +----+---------------------+------------------------------------------+
    

    今は注文は関係ありません:

    mysql> SELECT * FROM articles WHERE MATCH (title,body)
         AGAINST ('comparison database' IN BOOLEAN MODE);
    
    +----+---------------------+------------------------------------------+
    | id | title               | body                                     |
    +----+---------------------+------------------------------------------+
    |  1 | PostgreSQL Tutorial | DBMS stands for DataBase ...             |
    |  5 | MySQL vs. YourSQL   | In the following database comparison ... |
    +----+---------------------+------------------------------------------+
    

    「PostgreSQL」という単語または「データベース比較」というフレーズを含む行を取得する場合は、次のリクエストを使用する必要があります。

    mysql> SELECT * FROM articles WHERE MATCH (title,body)
         AGAINST ('PostgreSQL "database comparison"' IN BOOLEAN MODE);
    
    +----+---------------------+------------------------------------------+
    | id | title               | body                                     |
    +----+---------------------+------------------------------------------+
    |  1 | PostgreSQL Tutorial | DBMS stands for DataBase ...             |
    |  5 | MySQL vs. YourSQL   | In the following database comparison ... |
    +----+---------------------+------------------------------------------+
    

    フィドル

    検索している単語がストップワードのリスト 、それは無視されます。




    1. Oracleは、select句で定義されたデータチャンクのチェックサム値を取得します

    2. mysqldumpのベストプラクティス:パート1 –MySQLの前提条件

    3. 5プロジェクト開発中のMySqlの有用なクエリ

    4. CodeIgniterでストアドプロシージャを「呼び出そう」としています