首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sqlite中的排序结果

Sqlite中的排序结果
EN

Stack Overflow用户
提问于 2010-05-10 13:39:19
回答 2查看 221关注 0票数 2

在MySQL中,我的sql如下所示

代码语言:javascript
运行
复制
SELECT * , IF( `Word` = 'sim', 1, IF( `Word` LIKE 'sim%', 2, IF( `Word` LIKE '%sim', 4, 3 ) ) ) AS `sort`
FROM `dblist`
WHERE `Word` LIKE '%sim%'
ORDER BY `sort` , `Word`

此sql在SQlite中不起作用。我想做结果排序。

代码语言:javascript
运行
复制
SELECT * FROM dblist where word like 'sim' or word like 'sim%' or word like '%sim%' or word like '%sim'

等于sim是第一个,sim%是第二个,%sim%是第三个,然后%sim是最后一个。

目前我还不能像sqlite中的mysql那样排序。如何更改sql以对结果进行排序?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-10 13:43:40

您应该使用CASE expression而不是IF,因为SQLite不支持后者。以下是您需要的SQL:

代码语言:javascript
运行
复制
SELECT
    *,
    CASE WHEN `Word` = 'sim' THEN 1
         WHEN `Word` LIKE 'sim%' THEN 2
         WHEN `Word` LIKE '%sim' THEN 4
         ELSE 3
    END `sort`
FROM `dblist`
WHERE `Word` LIKE '%sim%'
ORDER BY `sort` , `Word`
票数 3
EN

Stack Overflow用户

发布于 2010-05-10 13:50:59

代码语言:javascript
运行
复制
SELECT * , case when `Word` = 'sim' then 1 else case when `Word` LIKE 'sim%' then 2 else case when `Word` LIKE '%sim' then 4 else 3 end end end as sort
FROM `dblist`
WHERE `Word` LIKE '%sim%'
ORDER BY `sort` , `Word
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2800534

复制
相关文章

相似问题

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