【问题标题】:How can I sort where no character comes first?我怎样才能排序没有字符首先出现的地方?
【发布时间】:2020-12-04 13:31:41
【问题描述】:

我有一个 Flutter 应用程序,我正在开发其中我的 TextFormField 必须查询一个 sqlite 数据库并显示一个单词列表(使用流和 ListView)。因为我认为这是一般的默认设置,而且我的数据库就是这样组织的,所以我没有编写任何排序代码。

但我有一个问题,当有人键入“the”之类的内容时,列表显示如下:

  • 他们自己
  • 那么
  • 那里
  • 这些

为什么最后一个词是“the”? z 之后通常没有字符吗?我怎样才能让它成为第一位?我希望我的列表如下所示:

  • 他们自己
  • 那么
  • 那里
  • 这些

我可以在 sqlite 部分或 listView 部分或其他地方设置什么来解决这个问题吗?

【问题讨论】:

  • "因为我认为这是一般默认设置,而且我的数据库已经是这样组织的,所以我没有编写任何排序代码。" 这是你的问题。虽然有时“看起来那样”,但数据库还没有已经组织好”......它本质上是一个记录“包”,并且除非你指定订单您不能保证得到订单。如果您强制对这些结果进行排序(使用ORDER BY 子句:请参阅Select syntaxthe 应该领先于所有其他结果。

标签: sqlite sorting flutter listview stream-builder


【解决方案1】:

一种方法是

select * 
from your_table
where col like '%the%'
order by case when col = 'the' then 1 else 2 end,
         col

【讨论】:

  • 这些只是我需要排序的单词的一个例子。数据库很大。
  • 如果您在col 上有索引,那么应该没问题
猜你喜欢
  • 2020-03-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
相关资源
最近更新 更多