【问题标题】:SQLite order by equivalent query for MySql querySQLite 通过对 MySql 查询的等效查询进行排序
【发布时间】:2018-04-13 08:39:06
【问题描述】:
   SELECT username FROM users ORDER BY username='eldho', username ASC   

有人可以帮我为上述 MySQL 查询编写 SQLite 等效查询吗?

任何帮助将不胜感激。

【问题讨论】:

  • 这是非常基本的标准SQL,所以应该没有任何区别,还是我错了?

标签: mysql sql sqlite


【解决方案1】:

您可以使用CASE 表达式:

SELECT username
FROM users
ORDER BY
    CASE WHEN username = 'eldho' THEN 1 ELSE 0 END,
    username;

【讨论】:

  • 我建议回滚你以前的。你说什么?
  • @YogeshSharma 等式返回 0 表示假,1 表示真。因此,我写的是对 SQLite 的翻译。至于OP是否真的想要这个命令,我真的不知道。
  • sqlfiddle.com/#!7/5971e/10 - 您发布的答案在 SQLite 中不起作用
  • 你搞错了THEN 1 ELSE 0。这应该是 THEN 0 ELSE 1,因此 'eldho' 位于列表顶部。
【解决方案2】:

这会将'eldho' 放在列表顶部,然后其余部分按字母顺序排序。

SELECT username
FROM users
ORDER BY
    CASE username
        WHEN 'eldho' 
            THEN 0 
            ELSE 1 
        END;

http://www.sqlfiddle.com/#!7/5971e/9

【讨论】:

  • 对不起 - 你是什么意思?
  • 我已经在你发帖前 15 分钟给出了这个答案。而且您删除了其中一个排序条件,因此您发布的内容甚至都不正确。
  • @TimBiegeleisen,检查我的 sqlfiddle 并在那里尝试你的答案。您发布的答案不符合 OP 的要求。
猜你喜欢
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多