【发布时间】:2019-09-12 11:36:48
【问题描述】:
我正在开发一个从本地 sqlite 数据库中检索数据的学习应用程序。该数据库有两个表。
- 存储文章类别的
category表:
+-------------+--------------------------+
| category_id | category_value |
+-------------+--------------------------+
| programming | How To Start Programming |
+-------------+--------------------------+
| math | How To Start Math |
+-------------+--------------------------+
| chemistry | How To Start Chemistry |
+-------------+--------------------------+
- 存储文章本身的
article表:
+-------------+------------+------------------------+
| parent_id | article_id | article_value |
+-------------+------------+------------------------+
| programming | java | Let's learn java |
+-------------+------------+------------------------+
| programming | python | Let's learn python |
+-------------+------------+------------------------+
| math | funcs | Let's learn functions |
+-------------+------------+------------------------+
| math | derivative | Let's learn derivative |
+-------------+------------+------------------------+
| chemistry | lewis | Let's learn Lewis |
| | | structure |
+-------------+------------+------------------------+
现在我确实实现了搜索功能。我希望结果要么是在其article_value 中具有搜索短语的文章,要么是在其父category_value 中具有搜索短语的文章。所以我使用了这个查询:
SELECT * FROM article WHERE article_value LIKE '%search_phrase%' OR parent_id = (SELECT category_id FROM category WHERE category_value LIKE '%search_phrase%')
它适用于文章部分,但是当涉及到子查询部分时,它只返回一个类别的文章。即使有更多合格的类别。
【问题讨论】:
-
你能分享一个搜索短语没有给出正确的结果吗?
标签: android sql sqlite android-studio