MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL INSERT INTOコマンドでWHERE句を使用するにはどうすればよいですか?


新しい行を挿入する場合は、条件付き挿入、つまりINSERTINTOコマンドでWHERE句を使用できます。次の方法で行うことができます-

ダミーテーブルの助けを借りて

この場合、ダミーテーブルの値をいくつかの条件とともに挿入します。構文は次のようになります-

INSERT INTO table_name(column1,column2,column3,…) Select value1,value2,value3,… From dual WHERE [conditional predicate];
mysql> Create table testing(id int, item_name varchar(10));
Query OK, 0 rows affected (0.15 sec)

mysql> Insert into testing (id,item_name)Select 1,'Book' From Dual Where 1=1;
Query OK, 1 row affected (0.11 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> Select * from testing;

+------+-----------+
| id   | item_name |
+------+-----------+
| 1    | Book      |
+------+-----------+

1 row in set (0.00 sec)

上記の例では、「テスト」テーブルを作成し、そのテーブルに行を挿入するために、条件付きのダミーテーブルデュアルを使用しました。条件がtrueの場合、MySQLは行をテーブルに挿入します。それ以外の場合は挿入しません。

同じ構造テーブルの助けを借りて

構造が別のテーブルと同じテーブルに挿入する場合、次の例では、条件付き挿入を行う方法、つまりINSERTINTOステートメントでWHERE句を使用する方法を示しています。

mysql> Insert into dummy1(id,name)select id, name from dummy Where id =1;
Query OK, 1 row affected (0.06 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from dummy;

+------+--------+
| id   | Name   |
+------+--------+
| 1    | Gaurav |
| 2    | Aarav |
+------+--------+

2 rows in set (0.00 sec)

mysql> select * from dummy1;

+------+--------+
| id   | Name   |
+------+--------+
| 1    | Gaurav |
+------+--------+

1 row in set (0.00 sec)

上記の例では、テーブル「dummy1」に値を挿入しました。テーブル「dummy」と同じ構造で、「id=1」の行のみを挿入する条件があります。


  1. MySQL DISTINCT句をWHEREおよびLIMIT句と一緒に使用するにはどうすればよいですか?

    MySQLクエリでDISTINCT句とともにWHERE句を使用することにより、MySQLが結果セットの一意の行を返すための条件を設定しています。 MySQLクエリでDISTINCT句とともにLIMIT句を使用することにより、実際には、返される結果セットの一意の行の最大数に関する境界をサーバーに提供しています。 例 「testing」という名前のテーブルで、次のようにDISTINCTでWHERE句とLIMIT句を使用できます- mysql> Select * from testing; +------+---------+---------+ | id   | fname &nb

  2. WHERE句でMySQLVIEWを使用するにはどうすればよいですか?

    WHERE句を使用したMySQLVIEWの場合、構文は次のとおりです- select * from yourViewName where yourColumnName='yourValue'; まず、-を作成しましょう mysql> create table DemoTable1432    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> StudentName varchar(20),   &n