首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按文字排序SQL查询

按文字排序SQL查询
EN

Stack Overflow用户
提问于 2014-05-02 06:45:09
回答 3查看 1.5K关注 0票数 2

我正在使用mysql数据库,我有下一个查询:

代码语言:javascript
复制
SELECT DISTINCT OP1.meta_value AS meta_value 
FROM  wp_postmeta OP1 WHERE OP1.meta_key like 'size' 
and OP1.meta_value is not null and OP1.meta_value <> 'null' 
ORDER BY OP1.meta_value DESC

结果是:小,中,大,大,

我需要这样点菜:小,中,大,大.

是否有任何解决方案,以“文字”。我想是这样的,但不管用:

代码语言:javascript
复制
SELECT DISTINCT OP1.meta_value AS meta_value FROM
wp_postmeta OP1 WHERE OP1.meta_key like 'size' 
and OP1.meta_value is not null 
and OP1.meta_value <> 'null' 
ORDER BY ('small', 'medium', 'big', 'huge')

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-02 06:52:25

您可以使用字段函数来完成它。

代码语言:javascript
复制
SELECT DISTINCT 
    OP1.meta_value AS meta_value 
FROM
    wp_postmeta OP1 
WHERE OP1.meta_key like 'size' 
    and OP1.meta_value is not null 
    and OP1.meta_value <> 'null' 
ORDER BY FIELD (meta_value, 'small', 'medium', 'big', 'huge')
票数 1
EN

Stack Overflow用户

发布于 2014-05-02 06:50:25

字段函数正是您要寻找的:

代码语言:javascript
复制
SELECT DISTINCT OP1.meta_value AS meta_value FROM
wp_postmeta OP1 WHERE OP1.meta_key like 'size' 
and OP1.meta_value is not null 
and OP1.meta_value <> 'null' 
ORDER BY FIELD (meta_value, 'small', 'medium', 'big', 'huge')

顺便说一句,注意使用LIKE是多余的-因为搜索中没有通配符,所以可以只使用OP1.meta_key = 'size'

票数 1
EN

Stack Overflow用户

发布于 2014-05-02 06:53:21

代码语言:javascript
复制
 SELECT DISTINCT OP1.meta_value AS meta_value FROM
 wp_postmeta OP1 WHERE OP1.meta_key like 'size' 
 and OP1.meta_value is not null 
 and OP1.meta_value <> 'null' 
 ORDER BY (CASE 
    WHEN meta_value='small' THEN 1 
    WHEN meta_value='medium' THEN 2
    WHEN meta_value='big' THEN 3
    WHEN meta_value='hude' THEN 4
END)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23422315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档