MySQL ORDER BY带下划线的字符串?

让我们首先创建一个表-

mysql> create table DemoTable
(
   Name varchar(100)
);

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable values('John_Smith');
mysql> insert into DemoTable values('Chris Brown');
mysql> insert into DemoTable values('John_Doe');
mysql> insert into DemoTable values('David Miller');
mysql> insert into DemoTable values('Carol Taylor');

使用select语句显示表中的所有记录-

mysql> select *from DemoTable;

这将产生以下输出-

+--------------+
| Name         |
+--------------+
| John_Smith   |
| Chris Brown  |
| John_Doe     |
| David Miller |
| Carol Taylor |
+--------------+
5 rows in set (0.00 sec)

以下是带有下划线的按字符串排序的查询-

mysql> select *from DemoTable order by (Name LIKE 'John_%') DESC,rand();

这将产生以下输出-

+--------------+
| Name         |
+--------------+
| John_Doe     |
| John_Smith   |
| Carol Taylor |
| David Miller |
| Chris Brown  |
+--------------+
5 rows in set (0.42 sec)