Kom ihåg mig?
Home Menu

Menu


MySQL - fält som rader

 
Ämnesverktyg Visningsalternativ
Oläst 2007-12-07, 14:34 #1
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Finns det ett sätt att transformera data i en tabell så att man får alla fält i en enda kolumn. Alltså om jag väljer en rad så vill jag ha alla fält i den raden på varsin rad i en enda kolumn. Jag vill inte skapa en ny tabell utan bara ha resultatet från en fråga i den formen.
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-12-07, 19:31 #2
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
Citat:
Originally posted by andi@Dec 7 2007, 14:34
Finns det ett sätt att transformera data i en tabell så att man får alla fält i en enda kolumn. Alltså om jag väljer en rad så vill jag ha alla fält i den raden på varsin rad i en enda kolumn. Jag vill inte skapa en ny tabell utan bara ha resultatet från en fråga i den formen.
Du kan göra det med hjälp av CONCAT-funktionen:
Kod:
SELECT CONCAT(column1, column2, column3) FROM table
Alternativt kan du använda CONCAT_WS om du vill separera kolumnerna med något specifikt tecken. Nu står det ju i texten att du vill spara det här i en ny kolumn, men det gör du ju med en vanlig UPDATE-fråga.

Allltså:
Kod:
UPDATE table SET text_column = CONCAT_WS(';', column1, column2, column3)
EDIT: Jag tror att jag missförstod vad du menade!
fors är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-12-07, 19:36 #3
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by andi@Dec 7 2007, 15:34

Finns det ett sätt att transformera data i en tabell så att man får alla fält i en enda kolumn. Alltså om jag väljer en rad så vill jag ha alla fält i den raden på varsin rad i en enda kolumn. Jag vill inte skapa en ny tabell utan bara ha resultatet från en fråga i den formen.
Får man fråga vad syftet med det hela är, alltså vad som ska hända och varför?
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-12-07, 19:50 #4
lubic lubic är inte uppkopplad
Medlem
 
Reg.datum: Aug 2005
Inlägg: 205
lubic lubic är inte uppkopplad
Medlem
 
Reg.datum: Aug 2005
Inlägg: 205
Tror andi är ute efter en unpivot, alltså att få innehållet från flera kolumner i samma rad som olika rader i en och samma kolumn. Dock vet jag inte exakt hur man gör det på bästa sätt i mySQL.
lubic är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-12-07, 23:33 #5
Anders Larssons avatar
Anders Larsson Anders Larsson är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 3 205
Anders Larsson Anders Larsson är inte uppkopplad
Klarade millennium-buggen
Anders Larssons avatar
 
Reg.datum: Jan 2004
Inlägg: 3 205
Det låter som att du är ute efter "group concat"
http://dev.mysql.com/doc/refman/5.0/en/gro...on_group-concat
Anders Larsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-12-08, 01:39 #6
dvorak dvorak är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2005
Inlägg: 8
dvorak dvorak är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2005
Inlägg: 8
en variant:

SELECT kolumn1 FROM tabell
UNION
SELECT kolumn2 FROM tabell
UNION
SELECT kolumn3 FROM tabell

är det olika datatyper i kolumnerna får du lov att casta alla till samma datatyp
dvorak är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-12-08, 11:57 #7
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Citat:
Originally posted by lubic@Dec 7 2007, 20:50
Tror andi är ute efter en unpivot, alltså att få innehållet från flera kolumner i samma rad som olika rader i en och samma kolumn. Dock vet jag inte exakt hur man gör det på bästa sätt i mySQL.
Ja precis! Nu har jag dock fått reda på att det inte går att göra detta i MySQL på samma smidiga sätt som i andra databaser. Syftet var att visa data från en enda rad i en tabell på ett överskådligare sätt i en windows-applikation utan att behöva koda så mycket.

Ska testa UNION som dvorak föreslog.

Tack för alla svar!
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-12-08, 18:03 #8
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Citat:
Ursprungligen postat av andi
Citat:
Ursprungligen postat av lubic
Tror andi är ute efter en unpivot, alltså att få innehållet från flera kolumner i samma rad som olika rader i en och samma kolumn. Dock vet jag inte exakt hur man gör det på bästa sätt i mySQL.

Ja precis! Nu har jag dock fått reda på att det inte går att göra detta i MySQL på samma smidiga sätt som i andra databaser. Syftet var att visa data från en enda rad i en tabell på ett överskådligare sätt i en windows-applikation utan att behöva koda så mycket.

Ska testa UNION som dvorak föreslog.

Tack för alla svar!
Hmmm, ändra inte på databasdesignen för att få presentationslagret att presentera datat som du vill, det är fel väg att gå (om jag inte missuppfattar dig).
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-12-08, 19:50 #9
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Citat:
Originally posted by Robert@Dec 8 2007, 19:03

Hmmm, ändra inte på databasdesignen för att få presentationslagret att presentera datat som du vill, det är fel väg att gå (om jag inte missuppfattar dig).
Det är inte designen jag vill ändra på, bara få ut data med en fråga formatterat på ett annat sätt än som det lagras i tabellen, typ som när man använder CONCAT.
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-12-09, 00:27 #10
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Citat:
Ursprungligen postat av andi
Citat:
Ursprungligen postat av Robert
Hmmm, ändra inte på databasdesignen för att få presentationslagret att presentera datat som du vill, det är fel väg att gå (om jag inte missuppfattar dig).

Det är inte designen jag vill ändra på, bara få ut data med en fråga formatterat på ett annat sätt än som det lagras i tabellen, typ som när man använder CONCAT.
Du verkar ju vilja ha datat "på höjden" istället för på bredden så att säga, och detta endast för att slippa loopa igenom kolumnerna och istället loopa igenom rader (du skrev att det blev mindre kod...). Jag vidhåller isåfall att du inte ska behöva ställa en annan typ av fråga till databasen, utan låta PRESENTATIONSlagret fixa hur det ser ut för slutanvändaren. Men jag ber om ursäkt om jag fortfarande missuppfattar dig...
Robert är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:37.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017