列に複数のレコードに同じデータが含まれているMySQL行を選択しますか?
MySQL JOINを使用して、列に複数のレコードに同じデータが含まれているMySQL行を選択します。まずテーブルを作成しましょう-
mysql> create table DemoTable ( UserId int, UserName varchar(20) ); Query OK, 0 rows affected (0.54 sec)
挿入コマンド-
を使用してテーブルにレコードを挿入しますmysql> insert into DemoTable values(10,'John'); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(11,'Sam'); Query OK, 1 row affected (0.21 sec) mysql> insert into DemoTable values(12,'Larry'); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(13,'David'); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(14,'Larry'); Query OK, 1 row affected (0.10 sec)
selectコマンドを使用してテーブルのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+--------+----------+ | UserId | UserName | +--------+----------+ | 10 | John | | 11 | Sam | | 12 | Larry | | 13 | David | | 14 | Larry | +--------+----------+ 5 rows in set (0.00 sec)
以下は、列に複数のレコードに同じデータが含まれている行を選択するためのクエリです-
mysql> SELECT DISTINCT tbl1.* FROM DemoTable tbl1 JOIN DemoTable tbl2 on tbl2.UserId <> tbl1.UserId AND tbl2.UserName=tbl1.UserName;
これにより、次の出力が生成されます-
+--------+----------+ | UserId | UserName | +--------+----------+ | 14 | Larry | | 12 | Larry | +--------+----------+ 2 rows in set (0.14 sec)
-
一度に1バッチずつ行を選択するMySQLクエリ
このために、LIMITとOFFSETの概念を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1514 -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> FirstName varchar(20) -> ); Query OK, 0 rows affected (0.63 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します
-
MySQL値が複数存在する場所を選択します
このために、COUNT(*)関数と一緒にGROUPBYHAVINGを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> Value int -> ); Query OK, 0 rows affected (0.47 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(20); Query OK, 1 row affect