SQLite排序首先放置前缀匹配

时间:2013-04-17 08:59:41

标签: sqlite android-sqlite

我想知道如何制定一个SQLite ORDER,因为它的第一个标准将根据搜索字符串是否与前缀或列的中缀匹配来分隔匹配。第二个排序只是ASC。

E.g。搜索“st”并按该列排序将产生:

  • 天体物理学家
  • Baker Street
  • 尤达大师
  • Stack Overflow
  • 星际迷航
  • 剑龙
  • 系统冲击
  • Westwood的

我想点这样订购:

  • Stack Overflow
  • 星际迷航
  • 剑龙
  • 天体物理学家
  • Baker Street
  • 尤达大师
  • 系统冲击
  • Westwood的

因此首先匹配前缀,然后是其他匹配。二级排序只是ASC。

感谢您的任何意见。

1 个答案:

答案 0 :(得分:1)

假设您有一个名为产品的表,让我们简单地说它只有一个名为 Productname 的字段。并且您希望搜索以 Co 开头的商品名称,或者在 Co之间

所以,查询将是这样的:

SELECT Productname FROM Products
WHERE Productname LIKE 'Co%'
UNION ALL
SELECT Productname FROM (
SELECT Productname FROM Products
WHERE Productname LIKE '%Co%'
ORDER BY Productname) B

所以,如果你有以下记录

Coco Crunch
Lucky Cow
Coffee
Sweet Corn
Cookies
Corn Puff

现在会变成这样

Coco Crunch
Coffee
Cookies
Corn Puff
Lucky Cow
Sweet Corn

尝试使用您自己的字段和表格。