试试这个:
create table tb(id int, keyword varchar(50));
insert into tb
select 1 ,"中国广东省" union all
select 2 ,"广东省深圳市" union all
select 3 ,"广东省广州市" union all
select 4 ,"中国广西省" union all
select 5 ,"广西省南宁市" union all
select 6 ,"广西省桂林市";
select *
from tb
where keyword like "%广东%"
order by instr(keyword,"广东")
mysql> create table tb(id int, keyword varchar(50));
Query OK, 0 rows affected (0.44 sec)
mysql> insert into tb
-> select 1 ,"中国广东省" union all
-> select 2 ,"广东省深圳市" union all
-> select 3 ,"广东省广州市" union all
-> select 4 ,"中国广西省" union all
-> select 5 ,"广西省南宁市" union all
-> select 6 ,"广西省桂林市";
Query OK, 6 rows affected (0.17 sec)
Records: 6 Duplicates: 0 Warnings: 0
mysql> select *
-> from tb
-> where keyword like "%广东%"
-> order by instr(keyword,"广东");
+--+--+
| id | keyword |
+--+--+
| 2 | 广东省深圳市 |
| 3 | 广东省广州市 |
| 1 | 中国广东省 |
+--+--+
3 rows in set (0.03 sec)
mysql>