私はこのようなテーブルを持っています:
entity_guid | name | value
---------------|----------------|--------
189501 | context | groups
189501 | column | 3
189509 | context | profile
189509 | column | 3
189521 | context | profile
189521 | column | 2
189551 | context | groups
189551 | column | 1
189552 | context | groups
189552 | column | 3
189554 | context | groups
189554 | column | 2
189559 | context | profile
189559 | column | 1
189591 | context | profile
189591 | column | 3
name = column
行を更新したいvalue = 3
ので、value = 2
。entity_guid
しかし、私は別の行が存在する行を同じで、そしてname = context
で更新したいだけですvalue = groups
。
したがって、たとえば、変更する行を選択すると、次のようになります。
entity_guid | name | value
---------------|----------------|--------
189501 | column | 3
189552 | column | 3
私が試してみました:
SELECT * FROM (
SELECT * FROM `elggprivate_settings` WHERE `name` = 'context' AND `value` = 'groups'
) AS subquery
WHERE `name` = 'column' AND `value` = 3
しかし、テーブルがそのように設定されていないため、もちろんそれは機能しません。同じに対して複数の行がありますentity_guid
。ちなみに、これはソーシャルネットワークエンジンであるelggのデータベース内のテーブルです。私はMySQLがあまり得意ではなく、オンラインで答えを見つけることができませんでした。