#1241 - Операнд должен содержать 1 столбец (столбцы) - почему я это получаю?

Я пытаюсь выполнить запрос, но получаю вышеуказанную ошибку. Кто-нибудь может дать мне знать, почему я это понимаю.

UPDATE `catalog_eav_attribute`
SET `used_for_sort_by` = 1
WHERE attribute_id = (
SELECT * FROM `eav_attribute` WHERE `entity_type_id` = (SELECT `entity_type_id` FROM `eav_entity_type` WHERE `entity_model` = "catalog/product") AND `attribute_code` = "created_at");

1 ответ

Решение

У тебя есть attribute_id = (select * . . ., Предположительно, eav_attribute имеет более одного столбца.

Вам нужно указать конкретный столбец, что-то вроде этого:

UPDATE `catalog_eav_attribute`
    SET `used_for_sort_by` = 1
    WHERE attribute_id = (SELECT ea.attribute_id  -- this is a guess
                          FROM `eav_attribute` ea
                          WHERE `entity_type_id` = (SELECT `entity_type_id` 
                                                    FROM `eav_entity_type` 
                                                    WHERE `entity_model` = 'catalog/product'
                                                   ) AND
                               `attribute_code` = 'created_at'
                         );
Другие вопросы по тегам