と呼ばれるテーブルを含む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
それはすべて問題ないように見えますが、このクエリを実行すると ( from句を省略しますIN
);
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 システムによって生成されるため、変更できません。