Transponeren van kolom naar rij (MySQL): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 1: Regel 1:
'''Casus:''' Ik heb een lege tabel met zo'n 20 velden:  
+
== Het probleem ==
 +
 
 +
Ik heb een lege tabel met zo'n 20 velden:  
  
 
<pre>
 
<pre>
Regel 17: Regel 19:
 
</pre>
 
</pre>
  
Achterhalen van de veldnamen is niet moeilijk. Bv.: <pre>create table tmp select column_name from information_schema.columns where table_name="tabelnaam";</pre>.  
+
Achterhalen van de veldnamen is niet moeilijk. Bv.: <code>create table tmp select column_name from information_schema.columns where table_name="tabelnaam";</code>.
  
 
Maar hoe krijg ik die namen nu op één rij?
 
Maar hoe krijg ik die namen nu op één rij?
 +
 +
== Mogelijke oplossingen... Of toch niet ==
 +
 +
* [[Grouping (MySQL) | Grouping]] ligt voor de hand als oplossing, maar daabij wordt één variable gegenereerd met daarin meerdere veldname. Alles wordt dus in één veld gestopt
 +
* [[Grouping (MySQL) | Grouping]] + [[Explode (MySQL) | Explode]]. Nu worden de cellen gesplitst, maar belanden ze weer op verschillende rijen.

Versie van 8 jan 2016 17:27

Het probleem

Ik heb een lege tabel met zo'n 20 velden:

+--------+--------+--------+--------+
| Veld01 | Veld02 |   ...  | Veld20 |
+--------+--------+--------+--------+

Ik wil de namen van die velden in het eerste record zetten, zodat je zoiets krijgt als

+--------+--------+--------+--------+
| Veld01 | Veld02 |   ...  | Veld20 |
+--------+--------+--------+--------+
| Veld01 | Veld02 |   ...  | Veld20 |
+--------+--------+--------+--------+

Achterhalen van de veldnamen is niet moeilijk. Bv.: create table tmp select column_name from information_schema.columns where table_name="tabelnaam";.

Maar hoe krijg ik die namen nu op één rij?

Mogelijke oplossingen... Of toch niet

  • Grouping ligt voor de hand als oplossing, maar daabij wordt één variable gegenereerd met daarin meerdere veldname. Alles wordt dus in één veld gestopt
  • Grouping + Explode. Nu worden de cellen gesplitst, maar belanden ze weer op verschillende rijen.