Heim > Datenbank > MySQL-Tutorial > Warum führt meine MySQL-Anweisung INSERT ... SELECT zu „Operand sollte 1 Spalte(n) enthalten'?

Warum führt meine MySQL-Anweisung INSERT ... SELECT zu „Operand sollte 1 Spalte(n) enthalten'?

DDD
Freigeben: 2024-12-04 13:42:12
Original
941 Leute haben es durchsucht

Why Does My MySQL INSERT ... SELECT Statement Result in

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
Nach dem Login kopieren

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;
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage