mysql - 在sql结果中排序

标签 mysql sql

我有自定义查询从数据库中获取数据。我在订购时遇到问题。

这是我用来获取数据的方法。

SELECT a.*, b.* FROM wp_terms AS a INNER JOIN wp_term_taxonomy AS b ON a.term_id = b.term_id
            WHERE
                b.taxonomy = "ticker" AND(
                    a.name LIKE "aa%" OR b.description LIKE "aa%"
                )
            ORDER BY 
                CASE 
                    WHEN(
                            a.name LIKE "aa%" AND b.description LIKE "aa%"
                        ) THEN 1 
                    WHEN(
                            a.name LIKE "aa%" AND b.description NOT LIKE "aa%"
                        ) THEN 2 
                    ELSE 3
                    END,a.name ASC
            LIMIT 0, 10

结果是这样显示的。

enter image description here

显示我需要一个结果来显示

AA

首先是其他结果。

它正在处理单个字符

SELECT a.*, b.* FROM wp_terms AS a INNER JOIN wp_term_taxonomy AS b ON a.term_id = b.term_id
            WHERE
                b.taxonomy = "ticker" AND(
                    a.name LIKE "v%" OR b.description LIKE "v%"
                )
            ORDER BY 
                CASE 
                    WHEN(
                            a.name LIKE "v%" AND b.description LIKE "v%"
                        ) THEN 1 
                    WHEN(
                            a.name LIKE "v%" AND b.description NOT LIKE "v%"
                        ) THEN 2 
                    ELSE 3
                    END,a.name ASC
            LIMIT 0, 10

enter image description here

最佳答案

字母排序的最佳解决方案是先按长度排序,然后按值排序 -

SELECT a.*,
  b.*
FROM wp_terms               AS a
INNER JOIN wp_term_taxonomy AS b
ON a.term_id     = b.term_id
WHERE b.taxonomy = "ticker"
AND( a.name LIKE "aa%"
OR b.description LIKE "aa%" )
ORDER BY
  CASE
    WHEN( a.name LIKE "aa%"
    AND b.description LIKE "aa%" )
    THEN 1
    WHEN( a.name LIKE "aa%"
    AND b.description NOT LIKE "aa%" )
    THEN 2
    ELSE 3
  END,
  LENGTH(a.name),
  a.name ASC LIMIT 0,
  10

关于mysql - 在sql结果中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59639703/

相关文章:

sql - 在 HSQL 中刷新 View

php - 复杂查询组合

php - 如何使用 php 更新 MySQL 中的一行?

mysql - MySQL 是否使用自增?

mysql - 按日期连接时查询速度慢(日历表)

sql - 插入和删除的伪表存储在哪里?

python - Django-MySQLdb : Symbol not found: _mysql_affected_rows

php - 在彼此内部使用多个mysql查询循环

sql - 缺少 FROM 子句,Update_all posts,其中 comment_ids

sql - SQL WHERE 子句是否短路计算?