2017-08-02 2 views
0

Ich versuche eine Abfrage auszuführen, aber ich erhalte den obigen Fehler. kann jemand mich wissen lassen, warum ich es bekomme.# 1241 - Operand sollte 1 Spalte (n) enthalten - warum bekomme ich das?

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

Die Auswahlliste aus der ersten Sub-Abfrage in Ihrer WHERE-Klausel darf nur eine Spalte zurückgeben, wie Sie versuchen, es aganst eine Spalte also passen 'attribute_id' – RiggsFolly

Antwort

3

Sie haben attribute_id = (select * . . .. Vermutlich hat eav_attribute mehr als eine Spalte.

Sie benötigen die bestimmte Spalte, so etwas zu spezifizieren:

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

Das war absolut richtig! Danke Gordon. –

Verwandte Themen