0
我有以下的sql语句,它可以很好地工作,但排序并不像我希望的那样工作。在我的sql语句中排序有问题
SELECT article_type as search
FROM appendix_article_type
WHERE article_type LIKE '%".$keyword."%'
ORDER BY CASE
WHEN article_type like '".$keyword." %' THEN 0
WHEN article_type like '".$keyword."%' THEN 1
WHEN article_type like '% ".$keyword."%' THEN 2
ELSE 3 END, article_type
当我键入字母V它呈现出的顺序如下:
//search
Volleyball - Sand
Scenic Views
Vacation Rentals
Volleyball - Indoor
Online - Delivery
Snorkeling & Diving
我希望它是这样
//search
Vacation Rentals
Volleyball - Indoor
Volleyball - Sand
Scenic Views
Online - Delivery
Snorkeling & Diving
UPDATE /编辑:
我有点想出了我的问题。我有一个工会附属于它,我认为是造成问题。如果我删除了工会,它工作得很好。
(SELECT article_type as search, "Article Type" as search_type, "article-type" as search_page
FROM appendix_article_type
WHERE article_type LIKE '%v%'
ORDER BY CASE WHEN article_type like 'v %' THEN 0
WHEN article_type like 'v%' THEN 1
WHEN article_type like '% v%' THEN 2
ELSE 3 END, article_type)
UNION (
SELECT DISTINCT(article_title) as search, "Article" as search_type, article_type_page as search_page
FROM system_article
INNER JOIN appendix_article_type ON system_article.article_type_id = appendix_article_type.article_type_id
WHERE article_status = '1'
AND article_title LIKE '%v%'
ORDER BY CASE WHEN article_title like 'v %' THEN 0
WHEN article_title like 'v%' THEN 1
WHEN article_title like '% v%' THEN 2
ELSE 3 END, article_title
)
删除案例,并通过article_type订购 – radar 2014-10-06 22:40:04
查看我的更新... – Christian 2014-10-07 12:22:05