webForumDet fria alternativet

Temporär tabell MySQL

Databaser & SQL

6 svar · 999 visningar · startad av Dev Null

Medlem sedan mars 200650 inlägg
Frågan#1

Hur göra temporär tabell?

Exempel:
MySQL-tabell med:
Äpple | Grön
Päron | Grön
Citron | Gul
Banan | Gul
Lime | Grön

Jag gör en sql-fråga där jag vill ha Gröna frukter.

Utfall:
Äpple | Grön
Päron | Grön
Lime | Grön

Nu vill jag göra en ny sökning på t.ex. frukter på P, hur skall detta göras?

Medlem sedan juni 20008 205 inlägg
#2

Varför vill du ha en temporärtabell? Det är bara att AND:a på ett villkor.

SELECT * FROM fruit WHERE color = 'Grön' AND name LIKE 'P%'
Medlem sedan jan. 2005327 inlägg
#3

Jag anatar det var ett exempel, för om det var så enkelt känns ju AND rimligare....

Behöver du en temp tabell så anänd keyword temporary enligt:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS].........

http://dev.mysql.com/doc/refman/5.0/en/create-table.html

/pebi

Medlem sedan mars 200650 inlägg
#4

pebi skrev:

Behöver du en temp tabell så anänd keyword temporary enligt:

Tack pebi, det var den sidan som jag inte hittat i manulen.

För att spinna vidare på fruktkompotten, så skall jag alltså lägga upp mina utvalda frukter i en CREATE TEMPORARY frukt i phpkoden, eller tillverkar jag den vid annat tillfälle? Lite lost på den biten...

Medlem sedan jan. 2005327 inlägg
#5

Ja, själva tanken med en temp tabell är ju att den bara "finns" från aktuell anslutning. Dvs det kan finns många parallella samtidiga temp tabeller med samma namn med olika data från olika anslutningar.
Så flödet borde bli något i stil med:

skapa den, göra insert till den, använda den.

Och när du koppla ner försvinner den.

/red: lite mer förklaring av vad jag menar:
Så i ditt frukt kompott exempel, kan det ju finnas en tempfrukt med alla gröna frukter och ena annan med alla gula.
Förutsatt att php koden, skapar den fyller den med data utifrån några kriterier oh det kan finnas minst två samtidiga databasanslutningar.

/pebi

Medlem sedan mars 200650 inlägg
#6

Jag förstår vad du menar, så i princip kan du då lägga en WHILE-loop och mata in utfallet direkt i en temporär tabell osv.

Bra, jag har blivit klokare idag.
Den dag man inte längre lär sig något nytt är inte livet värt att leva. (variant på kinesiskt ordspråk)

Medlem sedan nov. 2000857 inlägg
#7

Flyttas från PHP..

260 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)