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

MySQLテーブルにない値をデータベースに照会しますか?


このために、WHERE NOTEXISTSとともにUNIONALLを使用し、NOT INを実装して、テーブルにすでに存在する値を無視することができます。 UNION ALLでSELECTを使用して、まだテーブルにない値を追加します。

まずテーブルを作成しましょう-

mysql> create table DemoTable1918
   (
   Value int NOT NULL AUTO_INCREMENT PRIMARY KEY
   );
Query OK, 0 rows affected (0.00 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1918 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1918 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1918 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1918 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1918 values();
Query OK, 1 row affected (0.00 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select * from DemoTable1918;

これにより、次の出力が生成されます-

+-------+
| Value |
+-------+
|     1 |
|     2 |
|     3 |
|     4 |
|     5 |
+-------+
5 rows in set (0.00 sec)

これは、UNIONALL-

を使用してテーブルにない値をSELECTするためのクエリです。
mysql> select tbl.Value
   from ( select 6 as Value union all select 7 union all select 8 ) tbl
   where not exists ( select 1 from DemoTable1918 tbl1
   where tbl1.Value=tbl.Value);

これにより、次の出力が生成されます-

+-------+
| Value |
+-------+
|     6 |
|     7 |
|     8 |
+-------+
3 rows in set (0.00 sec)

  1. MySQLテーブルの各値の最大値を選択しますか?

    このためには、MAX()とともにGROUPBY句を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> CountryName varchar(20),    -> Population int    -> ); Query OK, 0 rows affected (0.56 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoT

  2. 別のテーブルの値を使用したINSERTINTOのMySQLクエリ?

    これには、INSERTINTOSELECTステートメントを使用します。 テーブルを作成しましょう- 例 mysql> create table demo82    -> (    -> id int,    -> name varchar(20)    -> ); Query OK, 0 rows affected (2.06 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 例 mysql> insert into demo82 values(100,&