php - 在没有定义排序规则的情况下订购 MySQL 字符串结果?

标签 php mysql collation

假设我有以下结果:

Mackay
Mackay Airport
Melbourne
Melbourne Airport
Sydney
Sydney Ac
Sydney Airport

我怎样才能让机场总是在他们的顶部?按字母顺序排列,例如:

Mackay Airport
Mackay
Melbourne Airport
Melbourne
Sydney Airport
Sydney
Sydney Ac

对于如何使机场更加突出有点困惑。

最佳答案

不确定以下查询是否涵盖所有情况,但它似乎适用于您的示例数据:

select name,
SUBSTRING_INDEX(name,'Airport',1)
as l,
LOCATE('Airport',name) as r from 
(
select 'Sydney Airport' as name
union all
select 'Sydney'
union all
select 'Sydney Ac'
union all
select '
Mackay Airport'
union all
select 'Mackay'
union all
select 'Melbourne'
union all
select 'Melbourne Airport'
)a
order by l asc, r desc

表格看起来像

select name
from table1 
ORDER BY SUBSTRING_INDEX(name,'Airport',1) ASC,
LOCATE('Airport',name) DESC

关于php - 在没有定义排序规则的情况下订购 MySQL 字符串结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14969993/

相关文章:

Mysql - 基于字段值的连接字段

mysql - 一些字符串比较不是逐个字符的吗?

mysql - 如果我期望的话,最好的 mysql 排序规则 ñ ü ï á é í ó ú

php - 选择日期时间不起作用的查询

mysql - 在 MySQL 中使用 HAVING 过滤查询中的行

javascript - 从迷你上传表单返回新文件名

php - 如何使用带有时间戳的 mysql "LIKE"语法?

php - MySQL 排序规则类型是否需要匹配 PHP 页面字符集类型?

php - 检查 PHP cookie 是否存在,如果没有设置它的值

php - 显示 PHP Mysql 数组的内容