Avatar billede donslund Nybegynder
01. januar 2007 - 15:55 Der er 11 kommentarer og
1 løsning

lave udtræk med 2 værdier fra hver post

Mon nedenstående kan laves med mySQL


Jeg har en tabel der indeholder 2 navne og 2 værdier på række.

eks:
hans  1200  peter  1300
otto  1189  niels  1412


Jeg vil så gerne lave et udtræk, så jeg ender med et array der hedder:

otto  1189
hans  1200
peter 1300
niels 1412

Hvordan kan det lade sig gøre? Nogen bud?
Avatar billede arne_v Ekspert
01. januar 2007 - 16:36 #1
(SELECT k1,k2 FROM t)
UNION
(SELECT k3,k4 FROM t)

måske
Avatar billede donslund Nybegynder
01. januar 2007 - 16:48 #2
$hent = "(SELECT dit_navn AS navn,din_tid AS tid FROM notes where din_tid <> 0) UNION (SELECT vens_navn AS navn, vens_tid AS tid FROM notes where vens_tid <> 0) order by tid";

Jeps. Den var godt. Men den sorterer på tid som var det en streng. Kan det ikke være numerisk?
Avatar billede arne_v Ekspert
01. januar 2007 - 16:53 #3
det synes jeg at den burde gøre automatisk hvis felterne er et tal felt

men ellers kan du vel lave en CAST(felt AS INTEGER)
Avatar billede donslund Nybegynder
01. januar 2007 - 16:58 #4
Hvor skal den CAST sættes ind så?
Avatar billede arne_v Ekspert
01. januar 2007 - 17:00 #5
prøv sådan:

$hent = "(SELECT dit_navn AS navn,din_tid AS tid FROM notes where din_tid <> 0) UNION (SELECT vens_navn AS navn, vens_tid AS tid FROM notes where vens_tid <> 0) order by CAST (tid AS INTEGER)";
Avatar billede donslund Nybegynder
01. januar 2007 - 17:06 #6
Nej den giver:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(tid AS INTEGER)' at line 1

Har også forsøgt med:
$hent = "(SELECT dit_navn AS navn, CAST(din_tid, INTEGER) AS tid FROM notes where din_tid <> 0) UNION (SELECT vens_navn AS navn, CAST(vens_tid, INTEGER) AS tid FROM notes where vens_tid <> 0)  order by tid";

Men også uden effekt.
Måske jeg bare skal lave min database om så det er FLOAT i stedet.
Avatar billede arne_v Ekspert
01. januar 2007 - 17:07 #7
hvilken MySQL version ?
Avatar billede donslund Nybegynder
01. januar 2007 - 17:11 #8
Client API version  3.23.49
Avatar billede arne_v Ekspert
01. januar 2007 - 17:14 #9
prøv

CAST (tid AS SIGNED INTEGER)
Avatar billede arne_v Ekspert
01. januar 2007 - 17:16 #10
hm - den kræver vist 4.0
Avatar billede donslund Nybegynder
01. januar 2007 - 17:17 #11
Ja, det gav et andet resultat. Smid et svar.
Avatar billede arne_v Ekspert
01. januar 2007 - 17:19 #12
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester