MySQLの「IN」句の(ORDER BY)位置で順序付けられた返されたレコードセットを取得します
レコードセットの順序を返すには、FIND_IN_SET()を使用する必要があります。まずテーブルを作成しましょう-
mysql> create table recordSetOrderDemo -> ( -> EmployeeId int, -> EmployeeName varchar(30) -> ); Query OK, 0 rows affected (0.63 sec)
以下は、挿入コマンド-
を使用してテーブルにいくつかのレコードを挿入するためのクエリです。mysql> insert into recordSetOrderDemo values(20,"John"); Query OK, 1 row affected (0.20 sec) mysql> insert into recordSetOrderDemo values(10,"Larry"); Query OK, 1 row affected (0.14 sec) mysql> insert into recordSetOrderDemo values(100,"Mike"); Query OK, 1 row affected (0.14 sec) mysql> insert into recordSetOrderDemo values(50,"Sam"); Query OK, 1 row affected (0.11 sec) mysql> insert into recordSetOrderDemo values(10,"David"); Query OK, 1 row affected (0.18 sec)
以下は、selectステートメント-
を使用してテーブルのすべてのレコードを表示するためのクエリです。mysql> select *from recordSetOrderDemo;
これにより、次の出力が生成されます-
+------------+--------------+ | EmployeeId | EmployeeName | +------------+--------------+ | 20 | John | | 10 | Larry | | 100 | Mike | | 50 | Sam | | 10 | David | +------------+--------------+ 5 rows in set (0.00 sec)
以下は、レコードセットの順序を返すクエリです-
mysql> select *from recordSetOrderDemo where EmployeeId IN(100,10,20,50) -> ORDER BY FIND_IN_SET(EmployeeId,'100,10,20,50');
これにより、次の出力が生成されます-
+------------+--------------+ | EmployeeId | EmployeeName | +------------+--------------+ | 100 | Mike | | 10 | Larry | | 10 | David | | 20 | John | | 50 | Sam | +------------+--------------+ 5 rows in set (0.03 sec)
-
一連の数字の最初の数字で並べ替えるMySQLクエリ?
一連の番号の最初の番号で並べ替えるには、ORDER BY SUBSTRING_INDEX()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable ( SetOfNumbers text ); Query OK, 0 rows affected (0.53 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('245,654,76,89,98'); Query OK, 1 row affect
-
日付レコードを注文し、MySQLで2番目に注文されたレコードをフェッチします
注文するには、ORDER BYを使用し、2番目に注文されたレコードのみをフェッチするには、MySQL LIMITを使用し、オフセットも設定します。まず、-を作成しましょう mysql> create table DemoTable1417 -> ( -> CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CustomerName varchar(20), -> ShippingDate date &nb