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

MySQLのさまざまな行でさまざまな条件を満たす値を選択しますか?


IN()とGROUP BYを使用して、さまざまな行でさまざまな条件を満たす値を選択できます。構文は次のとおりです-

SELECT yourColumnName1 from yourTableName
WHERE yourColumnName2 IN(value1,value2,.....N)
GROUP BY yourColumnName1
HAVING COUNT(DISTINCT yourColumnName2)=conditionValue;

上記の構文を理解するために、最初にテーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table DifferentRows
-> (
-> FirstRow int,
-> SecondRow int
-> );
Query OK, 0 rows affected (0.72 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into DifferentRows values(10,10);
Query OK, 1 row affected (0.15 sec)

mysql> insert into DifferentRows values(10,100);
Query OK, 1 row affected (0.17 sec)

mysql> insert into DifferentRows values(10,300);
Query OK, 1 row affected (0.16 sec)

mysql> insert into DifferentRows values(20,100);
Query OK, 1 row affected (0.18 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from DifferentRows;

以下は出力です。

+----------+-----------+
| FirstRow | SecondRow |
+----------+-----------+
| 10       | 10        |
| 10       | 100       |
| 10       | 300       |
| 20       | 100       |
+----------+-----------+
4 rows in set (0.00 sec)

これは、さまざまな行でさまざまな条件を満たす値を選択するためのクエリです。これにより、SecondRow 10、100、300

を持つすべての個別のFirstRowレコードが得られます。
mysql> select FirstRow from DifferentRows
-> where SecondRow IN(10,100,300)
-> group by FirstRow
-> having count(distinct SecondRow)=3;

以下は出力です。

+----------+
| FirstRow |
+----------+
| 10       |
+----------+
1 row in set (0.00 sec)

  1. MySQLのselectクエリを使用して、別のテーブルにないテーブルから行を選択しますか?

    この例では、2つのテーブルを作成し、Natural Left Joinを適用して、2番目のテーブルに存在しないテーブルから行を取得します。 最初のテーブルを作成します。 mysql> create table FirstTableDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.48 sec) 最初のテーブルにレコードを挿入します。 mysql> insert into FirstTableDemo values(1,Bo

  2. MySQLから最後の10行を選択するにはどうすればよいですか?

    MySQLから最後の10行を選択するには、SELECTステートメントとLimitの概念でサブクエリを使用できます。以下は例です。 テーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) テーブルにレコードを挿入します。 mysql> insert into Last10RecordsDemo values(1,John),(