我有一个 Joomla (3.9.13) 数据库,其中包含一个名为 的表fields_values
,它是一个非规范化的键值存储(有人告诉我)。它包含以下数据;
+----------+---------+--------+
| field_id | item_id | value |
+----------+---------+--------+
| 6 | 119 | bloggs |
| 17 | 119 | 1 |
| 19 | 119 | 45 |
| 21 | 119 | 55 |
| 17 | 119 | 14 |
| 17 | 119 | 100 |
+----------+---------+--------+
当我运行此查询时;
SELECT `field_id`
, `item_id`
, `value`
FROM `fields_values`
WHERE `field_id` IN (6,17) AND `item_id` = '119'
我得到了这些结果;
+----------+---------+--------+
| field_id | item_id | value |
+----------+---------+--------+
| 6 | 119 | bloggs |
| 17 | 119 | 1 |
| 17 | 119 | 2 |
| 17 | 119 | 13 |
| 17 | 119 | 14 |
| 17 | 119 | 100 |
+----------+---------+--------+
一切看起来都很好,但是当我运行这个查询时(省略6
fromIN
子句);
SELECT `field_id`
, `item_id`
, `value`
FROM `fields_values`
WHERE `field_id` IN (17) AND `item_id` = '119'
我得到零结果。
我本来期望得到以下结果;
+----------+---------+--------+
| field_id | item_id | value |
+----------+---------+--------+
| 17 | 119 | 1 |
| 17 | 119 | 2 |
| 17 | 119 | 13 |
| 17 | 119 | 14 |
| 17 | 119 | 100 |
+----------+---------+--------+
我也试过这个简单的查询版本;
SELECT
`field_id`,
`item_id`,
`value`
FROM
`o3m0z_fields_values`
WHERE
`field_id` = 17
AND
`item_id` = '119'
我得到零结果。
这是从 HeidiSQL 获取的表信息;
我试图在新的 Joomla 安装上复制它,但我不能。为什么会这样?
注意:我无法更改查询,因为它是由核心 Joomla 系统生成的。