对单词中匹配的起始字母进行排序
Sort order on matching starting letters in words
我有一个 table,我正在尝试在 name
上使用“apple m”过滤值
select * from table where name like '%apple%m%'
+-------+-------------------------------+------------------------+
| id | name | cat |
+-------+-------------------------------+------------------------+
| 2757 | Apple MacBook | Laptops & Accessories |
| 2777 | Apple Bottom Tops | Western Wear |
| 2752 | Apple Monitors | Desktop Components |
| 2756 | Apple Desktop & Monitors | Desktops & Accessories |
| 2778 | Apple Bottom Tunics | Tops |
| 2776 | Apple Selector & Smart Box | Video & TV Accessories |
| 2787 | Apple Pie Pyjamas | Girl Clothes |
| 2773 | Apple Selector & Smart Box | TV & Video Accessories |
| 2780 | Apple Fun Card Games | Toys |
| 38304 | Snapple Mixer juicer grinders | Kitchen Appliances |
+-------+-------------------------------+------------------------+
我想对以“apple”和“m”开头的显示值进行排序,如下所示:
+------+--------------------------+------------------------+
| id | name | cat |
+------+--------------------------+------------------------+
| 2757 | Apple MacBook | Laptops & Accessories |
| 2752 | Apple Monitors | Desktop Components |
| 2756 | Apple Desktop & Monitors | Desktops & Accessories |
| | ---Rest all after this-- | |
+------+--------------------------+------------------------+
我认为您可以使用如下简单的方法:
SELECT * FROM your_table WHERE name LIKE 'apple% m%' ORDER BY name;
上述查询首先会获取名称以 'apple '
开头的行,然后对结果进行排序。
如果您需要区分大小写,那么您可以使用:
SELECT * FROM your_table WHERE name LIKE 'Apple% m%' COLLATE utf8_bin ORDER BY name;
Case sensitivity in like
使用:
ORDER BY name LIKE 'Apple%m%' DESC, name ASC
name LIKE 'Apple%m%'
当名字匹配模式时是 1
,当它不匹配时是 0
,所以这将首先对匹配的名字进行排序。然后它将按每个组中的名称排序。
我有一个 table,我正在尝试在 name
select * from table where name like '%apple%m%'
+-------+-------------------------------+------------------------+
| id | name | cat |
+-------+-------------------------------+------------------------+
| 2757 | Apple MacBook | Laptops & Accessories |
| 2777 | Apple Bottom Tops | Western Wear |
| 2752 | Apple Monitors | Desktop Components |
| 2756 | Apple Desktop & Monitors | Desktops & Accessories |
| 2778 | Apple Bottom Tunics | Tops |
| 2776 | Apple Selector & Smart Box | Video & TV Accessories |
| 2787 | Apple Pie Pyjamas | Girl Clothes |
| 2773 | Apple Selector & Smart Box | TV & Video Accessories |
| 2780 | Apple Fun Card Games | Toys |
| 38304 | Snapple Mixer juicer grinders | Kitchen Appliances |
+-------+-------------------------------+------------------------+
我想对以“apple”和“m”开头的显示值进行排序,如下所示:
+------+--------------------------+------------------------+
| id | name | cat |
+------+--------------------------+------------------------+
| 2757 | Apple MacBook | Laptops & Accessories |
| 2752 | Apple Monitors | Desktop Components |
| 2756 | Apple Desktop & Monitors | Desktops & Accessories |
| | ---Rest all after this-- | |
+------+--------------------------+------------------------+
我认为您可以使用如下简单的方法:
SELECT * FROM your_table WHERE name LIKE 'apple% m%' ORDER BY name;
上述查询首先会获取名称以 'apple '
开头的行,然后对结果进行排序。
如果您需要区分大小写,那么您可以使用:
SELECT * FROM your_table WHERE name LIKE 'Apple% m%' COLLATE utf8_bin ORDER BY name;
Case sensitivity in like
使用:
ORDER BY name LIKE 'Apple%m%' DESC, name ASC
name LIKE 'Apple%m%'
当名字匹配模式时是 1
,当它不匹配时是 0
,所以这将首先对匹配的名字进行排序。然后它将按每个组中的名称排序。