正規表現の場合にORDERBYCASEを使用してクエリを並べ替えるにはどうすればよいですか?
CASEステートメントとともに正規表現を使用します。まずテーブルを作成しましょう-
mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Value varchar(20) ); Query OK, 0 rows affected (0.66 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable(Value) values('101'); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable(Value) values('P'); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable(Value) values('A'); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable(Value) values('53'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable(Value) values('R'); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable(Value) values('C'); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable(Value) values('190'); Query OK, 1 row affected (0.12 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+----+-------+ | Id | Value | +----+-------+ | 1 | 101 | | 2 | P | | 3 | A | | 4 | 53 | | 5 | R | | 6 | C | | 7 | 190 | +----+-------+ 7 rows in set (0.00 sec)
以下は、ORDERBYCASE-
を使用してクエリを並べ替えるクエリです。mysql> SELECT Id, Value FROM DemoTable ORDER BY CASE WHEN Value REGEXP '[a-zA-Z]' THEN 0 ELSE 0+Value END ASC, Value;
これにより、次の出力が生成されます-
+----+-------+ | Id | Value | +----+-------+ | 3 | A | | 6 | C | | 2 | P | | 5 | R | | 4 | 53 | | 1 | 101 | | 7 | 190 | +----+-------+ 7 rows in set (0.06 sec)
-
MySQL ORDER BY with CASE WHEN
このために、ORDERBYCASEステートメントを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable order by with vas Color varchar(100) ); Query OK, 0 rows affected (0.64 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Red'); Query OK, 1 row affected (0.11 sec) mysql> insert
-
MySQLでselectクエリによって取得された結果をどのように並べ替えることができますか?
テーブルから特定のデータまたは行を選択するのが一般的です。行は、テーブルに表示される順序で返されます。テーブルから選択した行を、ある列に対して昇順または降順で返す必要がある場合があります。 「ORDERBY」ステートメントは、ある列に関して結果を並べ替えるために使用されます。次の例は、より明確になります。 「name」フィールドを含むさまざまなフィールドで構成されるテーブルがあるとします。テーブルからすべての行を選択しますが、行は名前のアルファベット順に並べる必要があります。ここで「ORDERBY」ステートメントが機能します。このシナリオでは、結果を「名前」フィールドの昇順で並べ替える必要