【发布时间】:2014-01-29 04:24:45
【问题描述】:
我需要根据下表架构构造一个 SQLite 语句。 ParentEventInfoID 映射到同一个表中的其他项目。
表名事件信息: _id、名称、描述、ParentEventInfoID、SortId
查询的部分要求需要在名称和描述上执行 where 子句,我对此没有问题:
SELECT * FROM EventInfo
Where Name LIKE "%search text%" OR
Description LIKE "%search text%"
ORDER BY SortId;
我遇到的问题是我还需要包含条目的父项。以下是返回 LIKE 的所有匹配项的语句,但即使我知道我应该有更多,但只有一个父项:
SELECT * FROM EventInfo
Where Name LIKE "%search text%" OR
Description LIKE "%search text%" OR
_id = (SELECT ParentEventInfoID FROM EventInfo
Where (Name LIKE "%search text%" OR
Description LIKE "%search text%")
ORDER BY SortId
我已经有一段时间没有做大量的 SQL 了,我感觉很生疏。任何帮助是极大的赞赏。谢谢!
【问题讨论】:
-
将_id后面的
=替换为IN -
@MillerKoijam 成功了!你认为这是最有效的构建方式吗?
-
应该有更好的查询。我认为我们可以避免在内部查询中使用 like 子句,因为我们正在访问同一张表
-
是的,那是我不喜欢的部分。显得多余。但与此同时,您的解决方案让它对我有用。如果您想将其作为答案,我会接受吗?
标签: sql database sqlite select