値をスキップして列のn番目に高い値を選択するMySQLクエリ
列でn番目に高い値を取得するには、LIMITOFFSETを使用できます。ここでは、OFFSETを使用して値をスキップします。まずテーブルを作成しましょう-
mysql> create table DemoTable ( Value int ) ; Query OK, 0 rows affected (0.49 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable values(100); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(140); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(90); Query OK, 1 row affected (0.08 sec) mysql> insert into DemoTable values(80); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable values(89); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(98); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable values(58); Query OK, 1 row affected (0.10 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+-------+ | Value | +-------+ | 100 | | 140 | | 90 | | 80 | | 89 | | 98 | | 58 | +-------+ 7 rows in set (0.00 sec)
以下は、列のn番目に高い値を取得するためのクエリです。ここでは、 OFFSET 3を使用して3つの値をスキップしています 。同じことで、ORDERBY-
を使用した後に4番目に高い値が得られます。mysql> select Value from DemoTable order by Value limit 1 offset 3;
これにより、次の出力が生成されます-
+-------+ | Value | +-------+ | 90 | +-------+ 1 row in set (0.00 sec)
-
対応する列の値からNO値のみのカウントを返すMySQLクエリ
まずテーブルを作成しましょう- mysql> create table DemoTable1829 ( Name varchar(20), isTopper ENUM('YES','NO') ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTabl
-
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) 挿