Heim >Datenbank >MySQL-Tutorial >Warum erhält meine MySQL-INSERT-Anweisung den Fehler „Operand sollte 1 Spalte(n) enthalten'?

Warum erhält meine MySQL-INSERT-Anweisung den Fehler „Operand sollte 1 Spalte(n) enthalten'?

DDD
DDDOriginal
2024-12-17 01:59:25593Durchsuche

Why Does My MySQL INSERT Statement Get the

Verstehen des MySQL-Fehlers „Operand sollte 1 Spalte(n) enthalten“

MySQL-Fehlermeldung „Operand sollte 1 Spalte(n) enthalten“ weist auf einen Syntaxfehler im Zusammenhang mit der Anzahl der Spalten hin, die von einer Unterabfrage zurückgegeben werden, die in der SELECT-Anweisung einer INSERT-Anweisung verwendet wird -Klausel.

In diesem speziellen Fall ist der Benutzer auf diesen Fehler gestoßen, als er versuchte, mithilfe einer SELECT-Klausel, die zwei Tabellen (temp_cheques und BOOK) verbindet, Datensätze in die VOUCHER-Tabelle einzufügen. Die Abfrage hat versucht, mehrere Spalten (Nummer, ID und DENOMINATION) aus der SELECT-Klausel in eine einzelne Spalte (VOUCHER_NUMBER) einzufügen.

Korrektur der Syntax

An Um den Fehler zu beheben, muss der Benutzer sicherstellen, dass die SELECT-Klausel nur eine Spalte zurückgibt, die zum Wert der Zielspalte in der INSERT-Anweisung wird. Eine Möglichkeit, dies zu erreichen, besteht darin, die Klammern aus der SELECT-Klausel zu entfernen, gemäß der korrekten Syntax, die in der bereitgestellten Antwort hervorgehoben wird:

INSERT INTO VOUCHER (VOUCHER_NUMBER)
SELECT a.number
FROM temp_cheques a, BOOK b
WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;

Zusätzliche Überlegungen

In Zusätzlich zur Korrektur der Syntax ist es wichtig, die Warnung hinsichtlich des Querverweisvorgangs zu beachten, der zu einer möglicherweise großen Abfrage führt, wenn sowohl BOOK als auch temp_cheques viele enthalten Reihen. Damit die Abfrage ausgeführt werden kann, muss möglicherweise vor der Ausführung SQL_BIG_SELECTS = 1 festgelegt werden, wie in der Antwort erwähnt.

Das obige ist der detaillierte Inhalt vonWarum erhält meine MySQL-INSERT-Anweisung den Fehler „Operand sollte 1 Spalte(n) enthalten'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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