我正在尝试在使用实体属性值模型来存储对象的数据库中进行搜索。有人可以告诉我下面的查询有什么问题吗?
SELECT * FROM object a
INNER JOIN object_meta b
ON a.id = b.object
WHERE
a.name LIKE '%michael%' AND
b.name='type' AND b.value='judge'
AND (
(b.name='country' AND b.value='France')
OR
(b.name='country' AND b.value='Sweden')
)
ORDER BY a.name DESC
LIMIT 0, 50;
在这种情况下,我想选择名称包含“michael”并且属于类型 Judge 并且来自瑞典或法国的对象。我可以看到它在浏览数据库时存在与查询匹配的对象,但在我运行查询时没有任何结果。我正在通过命令行运行查询,因此它与应用程序代码无关。
表结构
object
+----+------------+
| id | name |
+----+------------+
| 1 | Michael... |
| 2 | Michael... |
+----+------------+
object_meta
+--------+---------+-----------+
| object | name | value |
+--------+---------+-----------+
| 1 | type | judge |
| 2 | type | judge |
+--------+---------------------+