0

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

例如,搜索“st”并简单地按该列排序将产生:

  • 天体物理学家
  • 贝克街
  • 尤达大师
  • 堆栈溢出
  • 星际迷航
  • 剑龙
  • 系统冲击
  • 韦斯特伍德

我想这样订购:

  • 堆栈溢出
  • 星际迷航
  • 剑龙
  • 天体物理学家
  • 贝克街
  • 尤达大师
  • 系统冲击
  • 韦斯特伍德

所以前缀匹配首先出现,然后是其余的。二级排序只是 ASC。

感谢您的任何意见。

4

1 回答 1

1

假设您有一个名为Products的表,让我们简单地说它只有一个名为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

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

于 2013-04-17T09:54:36.890 回答