根据 MySQL 中的子字符串位置对搜索结果进行排序


要根据子字符串位置对搜索结果进行排序,请使用 ORDER BY LOCATE()。我们首先创建一个表——

mysql> create table DemoTable1838
     (
     Subject varchar(100)
     );
Query OK, 0 rows affected (0.00 sec)

使用 insert 命令向表中插入一些记录——

mysql> insert into DemoTable1838 values('MongoDB MySQL');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1838 values('MySQL Java');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1838 values('JavaWithMySQL');
Query OK, 1 row affected (0.00 sec)

使用 select 语句从表中显示所有记录——

mysql> select * from DemoTable1838;

这将产生以下输出——

+---------------+
| Subject       |
+---------------+
| MongoDB MySQL |
| MySQL Java    |
| JavaWithMySQL |
+---------------+
3 rows in set (0.00 sec)

以下是对搜索结果按子字符串位置进行排序的查询

mysql> select * from DemoTable1838
     where Subject LIKE '%MySQL%'
     ORDER BY LOCATE('MySQL', Subject);

这将产生以下输出——

+---------------+
| Subject       |
+---------------+
| MySQL Java    |
| MongoDB MySQL |
| JavaWithMySQL |
+---------------+
3 rows in set (0.00 sec)

更新时间:2019 年 12 月 24 日

192 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告