Heim > Datenbank > MySQL-Tutorial > Hauptteil

Können Spaltennamen für die MySQL-Abfrageausführung dynamisch verkettet werden?

Linda Hamilton
Freigeben: 2024-10-24 04:43:30
Original
957 Leute haben es durchsucht

Can Column Names Be Concatenated Dynamically for MySQL Query Execution?

Spaltennamen dynamisch für die Abfrageausführung in MySQL verketten

Problemstellung:

In MySQL ist es wünschenswert, Spaltennamen in einer Abfrage zu verketten, wobei der erste Teil des Spaltennamens eine Zeichenfolge und der zweite Teil eine aus einer anderen Abfrage abgerufene Zahl ist.

Lösungsversuch:

Die folgende SQL-Anweisung versucht, die Verkettung zu erreichen:

<code class="sql">SELECT CONCAT('column', mytable.mycolumn) FROM table ...</code>
Nach dem Login kopieren

Dieser Ansatz führt jedoch nicht zum gewünschten Ergebnis und die Verkettung scheint unwirksam zu sein.

Lösung :

Entgegen einer früheren Annahme ist es tatsächlich möglich, Spaltennamen in MySQL mithilfe serverseitig vorbereiteter Anweisungen dynamisch zu erstellen. Betrachten Sie den folgenden Ansatz:

<code class="sql">set @query := (
  select concat(
    "select",
      group_concat(concat("\n  1 as ", column_name) separator ','),
    "\nfrom dual")
  from information_schema.columns
  where table_name = 'columns')
;

prepare s1 from @query
;
execute s1
;
deallocate prepare s1
;</code>
Nach dem Login kopieren

Dieser Code erstellt dynamisch eine Abfragezeichenfolge basierend auf dem Inhalt der Spaltentabelle. Mit der Prepare-Anweisung wird dann der Abfragestring kompiliert, der anschließend mit der Execute-Anweisung ausgeführt werden kann.

Das obige ist der detaillierte Inhalt vonKönnen Spaltennamen für die MySQL-Abfrageausführung dynamisch verkettet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!