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

特定の最後の文字列文字でソートするMySQLクエリ?


このために、CASEステートメントを使用できます。並べ替えるには、ORDERBY句を使用します。まずテーブルを作成しましょう-

mysql> create table DemoTable
   -> (
   -> ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> ClientName varchar(20)
   -> );
Query OK, 0 rows affected (0.54 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。一部のレコードには、-Dなどの特定の最後の文字列があります-

mysql> insert into DemoTable(ClientName) values('Mike');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(ClientName) values('John');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable(ClientName) values('John-D');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(ClientName) values('John-Smith');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(ClientName) values('Mike-Smith');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(ClientName) values('Mike-D');
Query OK, 1 row affected (0.15 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+----------+------------+
| ClientId | ClientName |
+----------+------------+
|        1 | Mike       |
|        2 | John       |
|        3 | John-D     |
|        4 | John-Smith |
|        5 | Mike-Smith |
|        6 | Mike-D     |
+----------+------------+
6 rows in set (0.00 sec)

これは、特定の最後の文字列文字で並べ替えるクエリです-

mysql> select
   -> case
   -> when right(ClientName,length(ClientName)-instr(ClientName,'-')) = `ClientName` THEN ''
   -> else right(`ClientName`,length(`ClientName`)-INSTR(`ClientName`,'-'))
   -> end as `last`,
   -> `ClientName`
   -> from
   -> DemoTable
   -> ORDER BY
   -> `last`,`ClientName`;
>

これにより、次の出力が生成されます-

+-------+------------+
| last  | ClientName |
+-------+------------+
|       | John       |
|       | Mike       |
| D     | John-D     |
| D     | Mike-D     |
| Smith | John-Smith |
| Smith | Mike-Smith |
+-------+------------+
6 rows in set (0.00 sec)

  1. 文字列内の特殊文字の前に部分文字列を表示するMySQLクエリ

    MySQLでこれにLOCATE()およびSUBSTRING()メソッドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Title text    -> ); Query OK, 0 rows affected (0.54 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Introduction To Java

  2. 特定の文字/数値で終わる列値を選択するためのMySQLクエリ?

    まずテーブルを作成しましょう- mysql> create table DemoTable (    Number int ); Query OK, 0 rows affected (0.80 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(189); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(178); Query OK, 1 row affected