2017-08-02 53 views
0

我想運行一個查詢,但我得到了上述錯誤。任何人都可以讓我知道爲什麼我會得到它。#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"); 
+0

從您的WHERE子句中的第一子查詢的選擇列表,你要匹配它aganst一倍,即必須返回只有一列'attribute_id' – RiggsFolly

回答

3

您有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' 
         ); 
+0

這是絕對正確的!謝謝Gordon。 –

相關問題