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

MySQLで行をフィルタリングする句

    このチュートリアルは、MySQLを使用した基本的なSQLクエリの学習シリーズの一部です。前のチュートリアルでは、MySQLのテーブルから行をフェッチしたりデータを読み取ったりするためのSQLクエリについて説明しました。前のチュートリアルの例で示したように制限を指定しない限り、SELECTコマンドはテーブル内のすべての行を返します。いくつかの状況では、特定の条件を満たす限定された行を取得するために、結果の行をフィルタリングする必要があります。フィルタ条件を指定することにより、WHERE句を使用して行をフィルタリングできます。キーワードAND、ORを使用して複数の条件を指定することもできます。

    Where句

    場所 句を使用して、指定された条件に基づいてテーブルからフィルタリングされた行を読み取ることができます。データベースにリモートでログインしている場合は、テーブルから行を読み取るために、テーブルに対するSELECT権限も必要になります。

    # SELECT - Syntax - WHERE
    SELECT column_1,column_2,... FROM table_name WHERE <single or multiple conditions>;

    クエリの説明

    MySQLコマンドSELECT 指定されたテーブル名から行またはデータを読み取るために使用できます。ここで、テーブルの選択式と名前は必須です。

    WHERE句を使用して、selectクエリによって返される結果のクエリセットをフィルタリングできます。結果をフィルタリングするために、単一または複数の条件を指定できます。キーワードAND およびまたは 複数の条件を適用するために使用できます。キーワードINを使用することもできます およびNOTIN 列の値を一連の値に制限します。

    オペレーター

    以下の演算子を使用して、フィルター条件を適用しながら比較を実行できます。比較は、指定された値とテーブル列に格納されている値を使用して行われます。

    = 2つのオペランドの値が等しいかどうかを確認するために使用できます。


    != 2つのオペランドの値が等しくないかどうかをチェックします。


    > 左のオペランドの値が右のオペランドの値より大きいかどうかをチェックします。


    < 左のオペランドの値が右のオペランドの値よりも小さいかどうかをチェックします。


    > = 左のオペランドの値が右のオペランドの値以上かどうかをチェックします。


    <= 左のオペランドの値が右のオペランドの値以下かどうかをチェックします。

    このセクションでは、 SELECTを使用してテーブルからフィルタリングされたデータを読み取る例を示します。 WHEREを使用したコマンド 句。以下のクエリを使用して、ユーザーデータを格納するためのid、名、および姓の列を持つユーザーテーブルを作成します。

    # Create the User Table
    CREATE TABLE `user` (
    `user_id` bigint(20) NOT NULL,
    `first_name` varchar(45),
    `last_name` varchar(45)
    );

    下記のクエリを使用して、ユーザーテーブルにデータを挿入できます。

    # Insert Rows - All Columns
    INSERT INTO `user` ( `user_id`, `first_name`, `last_name`) VALUES
    ( 1, 'John', 'Smith' ),
    ( 2, 'Rick', 'Jones' ),
    ( 3, 'Catherine', 'Ponting' ),
    ( 4, 'Harsh', 'Upadhyay' ),
    ( 5, 'Tajwinder', 'Singh' ),
    ( 6, 'Leo', NULL ),
    ( 7, 'Leo', 'Murphy' ),
    ( 8, 'Ram', 'Choudhary' ),
    ( 9, 'Nicole', NULL ),
    ( 10, 'Ram', 'Choudhary' );

    上記のクエリは、10人の異なるユーザーを表すために、ID、名、および姓を持つ10行をテーブルに挿入します。

    次に、ユーザーテーブルに挿入されたフィルタリングされたデータを読み取ります。以下に示すように、SELECTコマンドを使用して実行できます。

    # Filter - WHERE - Read all rows having first name set to Leo
    SELECT * FROM `user` WHERE `first_name` = 'Leo';

    # Result
    6 Leo
    7 Leo Murphy


    # Filter - WHERE - AND - Read all rows having first name set to Leo and last name set to Murphy
    SELECT * FROM `user` WHERE `first_name` = 'Leo' AND `last_name` = 'Murphy';

    # Result
    7 Leo Murphy


    # Filter - WHERE - IS NOT - Read all rows having last name without NULL values
    SELECT * FROM `user` WHERE `last_name` IS NOT NULL;

    # Result
    1 John Smith
    2 Rick Jones
    3 Catherine Ponting
    4 Harsh Upadhyay
    5 Tajwinder Singh
    7 Leo Murphy
    8 Ram Choudhary
    10 Ram Choudhary


    # Filter - WHERE - OR, IN - Read all rows having first name is either John or Harsh
    SELECT * FROM `user` WHERE `first_name` = 'John' OR `first_name` = 'Harsh';
    SELECT * FROM `user` WHERE `first_name` IN ( 'John', 'Harsh' );

    # Result
    1 John Smith
    4 Harsh Upadhyay

    上記のクエリは、s tringに対してさまざまなフィルタ操作を実行します 単一または複数の条件を使用した値。文字列データ型の列にフィルタを適用するときは、必ず一重引用符を使用してください。

    # Filter - WHERE - Read all rows having id lesser than 5
    SELECT * FROM `user` WHERE `user_id` < 5;

    # Result
    1 John Smith
    2 Rick Jones
    3 Catherine Ponting
    4 Harsh Upadhyay


    # Filter - WHERE - LIMIT - Read all rows having id lesser than 5
    SELECT * FROM `user` WHERE `user_id` < 5 LIMIT 2;

    # Result
    1 John Smith
    2 Rick Jones


    # Filter - WHERE - AND - Read all rows having id greater than 3 and lesser than 6
    SELECT * FROM `user` WHERE `user_id` > 3 AND `user_id` < 6;

    # Result
    4 Harsh Upadhyay
    5 Tajwinder Singh

    上記のクエリは、数値データ型の条件を適用します。以下に示すように、さまざまなタイプの値を混在させることもできます。

    # Filter - WHERE - AND - Read all rows having first name set to Harsh, id greater than 2 and lesser than 5
    SELECT * FROM `user` WHERE `first_name` = 'Harsh' AND `user_id` > 3 AND `user_id` < 6;

    # Result
    4 Harsh Upadhyay

    これは、WHERE句を使用してMySQLテーブルに格納されているフィルタリングされたデータを読み取る方法です。


    1. varchar2で宣言されている有効な日付を確認してください

    2. PostgreSQLで統計ターゲットを確認する

    3. phpMyadminでの最大実行時間

    4. INSERTINTOとSELECTINTO