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

mySQLでテーブル全体を検索して文字列を探します

    次のようなものを試してください:

    SELECT * FROM clients WHERE CONCAT(field1, '', field2, '', fieldn) LIKE "%Mary%"
    

    文字列演算子と正規表現の詳細については、SQLドキュメントを参照してください。

    編集:NULLフィールドに問題がある可能性があるため、IFNULL(field_i, '')を使用する場合に備えて field_iだけでなく

    大文字と小文字の区別 :大文字と小文字を区別しない照合などを使用できます:

    ... WHERE LOWER(CONCAT(...)) LIKE LOWER("%Mary%")
    

    すべてのフィールドを検索するだけです :検索するフィールドを明示的に宣言せずにすべてのフィールドを検索するSQLクエリを作成する方法はないと思います。その理由は、リレーショナルデータベースの理論と、リレーショナルデータ(関係代数やcodd代数;これらはSQLの由来です)、理論では「すべてのフィールドを検索するだけ」などは許可されていません。もちろん、実際の動作はベンダーの具体的な実現に依存します。しかし、一般的なケースではそれは不可能です。確認するには、SELECTを確認してください 演算子の構文(WHERE セクション、正確には)。



    1. Oracleデータベースでパラメータを使用してPL/SQLストアドプロシージャを作成する方法

    2. MySql変数とphp

    3. MySQLのデフォルトのONDELETE動作は何ですか?

    4. SQLサーバーのRollUPと合計しますが、最後の要約だけですか?