Off*_*fCS 2 java sql sqlite android
(SELECT word, description
FROM dictionary
WHERE word LIKE 'xxxx%') AS a
UNION
(SELECT word, description
FROM dictionary
WHERE word LIKE '%xxxx%' AND word NOT IN a.word)
Run Code Online (Sandbox Code Playgroud)
注意:“xxxxx”是关键字。
我正在 Android 上开发一个字典应用程序,它通过关键字进行搜索。要求是以关键字开头的结果。我提出了通过 sql 联合的想法,但我不是 SQL 专家,所以有人可以帮助我弄清楚我在上面的查询中做错了什么。
仅供参考:我正在使用 rawQuery() 来处理原始 SQL 语句。
感谢社区。
不能保证UNION运算符会按照您假设的顺序对两个子查询中的行进行排序。UNION ALL不会尝试查找重复项,因此它有更多的工作机会(如您所希望的那样)。
所以这可能有效(也可能无效!) - 取决于UNION ALL内部的工作方式:
(SELECT word, description
FROM dictionary
WHERE word LIKE 'xxxx%') AS a
UNION ALL
(SELECT word, description
FROM dictionary
WHERE word LIKE '%_xxxx%') AS b
Run Code Online (Sandbox Code Playgroud)
最好用 明确指定顺序ORDER BY。我认为 SQLite 支持这一点:
SELECT word, description
FROM dictionary
WHERE word LIKE '%xxxx%'
ORDER BY (word LIKE 'xxxx%') DESC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2528 次 |
| 最近记录: |