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

MySQL:複数の列で同じ文字列を探します

    簡単な回避策:

    SELECT * 
    FROM projects 
    WHERE 
        CONCAT(category,name,description,keywords,type) LIKE '%query%' 
    ORDER BY name ASC;
    

    必要に応じて、列の間に区切り文字を追加できます:

    SELECT * 
    FROM projects 
    WHERE 
        CONCAT(category,"|",name,"|",description,"|",keywords,"|",type) LIKE '%query%' 
    ORDER BY name ASC;
    

    全文検索を使用することもできます(ここで説明するように全文インデックスを作成する必要があります:複数の列のフルテキストインデックスはどのように機能しますか?

    SELECT *, MATCH (category,name,description,keywords,type) AGAINST ('query') AS score FROM projects WHERE MATCH (category,name,description,keywords,type) AGAINST ('query');
    


    1. SQL Server:初心者向けの便利なヒント

    2. PostgreSQLでJSONB値をマージしますか?

    3. android.database.sqlite.SQLiteCantOpenDatabaseException:不明なエラー(コード14):データベースを開くことができませんでした

    4. 16進数のテキスト文字列をbyteaとしてPostgreSQLに挿入する