MySQL-Fehler: „Operand sollte 1 Spalte(n) enthalten“
Wenn Sie eine INSERT-Anweisung mit einer SELECT-Klausel in MySQL ausführen, werden Sie Möglicherweise tritt der Fehler „Operand sollte 1 Spalte(n) enthalten“ auf. Dieser Fehler tritt auf, wenn die SELECT-Klausel mehr als eine Spalte zurückgibt und damit gegen das erwartete Format der INSERT-Anweisung verstößt.
Um dieses Problem zu beheben, folgen Sie der korrekten Syntax für eine INSERT-Anweisung mit einer SELECT-Klausel:
INSERT INTO MyTable (PriKey, Description) SELECT ForeignKey, Description FROM SomeView
Entfernen Sie in Ihrer spezifischen Abfrage die Klammern aus der SELECT-Klausel:
INSERT INTO VOUCHER (VOUCHER_NUMBER, BOOK_ID, DENOMINATION) SELECT a.number, b.ID, b.DENOMINATION FROM temp_cheques a, BOOK b WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;
Außerdem ist die Fehler „SELECT würde mehr als MAX_JOIN_SIZE Zeilen untersuchen; überprüfen Sie Ihr WHERE und verwenden Sie SET SQL_BIG_SELECTS=1 oder SET SQL_MAX_JOIN_SIZE=#, wenn SELECT in Ordnung ist.“ weist darauf hin, dass die Querverweisabfrage möglicherweise zu einer großen Ergebnismenge führt. Um den Vorgang zuzulassen, führen Sie die folgende Anweisung aus, bevor Sie die INSERT-Abfrage ausführen:
SET SQL_BIG_SELECTS = 1
Beachten Sie, dass dies dennoch zu einer längeren Ausführungszeit führen kann.
Das obige ist der detaillierte Inhalt vonWarum führt meine MySQL-Anweisung INSERT ... SELECT zu „Operand sollte 1 Spalte(n) enthalten'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!