Avatar billede pitzen Nybegynder
02. juni 2008 - 09:14 Der er 21 kommentarer og
1 løsning

Fejl i min query

Hej!

Jeg har følgende:

INSERT INTO point_log
(terning_id,type,status,point)
values
((SELECT id FROM terning_log WHERE FIND_IN_SET(vinderbet, bet) > 0),'8','godkendt','33')

og modtager fejlen #1136 - Column count doesn't match value count at row 1, som jeg godt ved hva betyder, men jeg kan stadig ikke spotte fejlen.

Nogen der kan?
Avatar billede pitzen Nybegynder
02. juni 2008 - 09:16 #1
Faktisk er det denne query (Den ovenstående havde jeg bare prøvet at korte ned):

INSERT INTO point_log
(time,ip,terning_id,bruger_id,type,status,point)
values
((SELECT time,ip,id,bruger_id FROM terning_log WHERE FIND_IN_SET(vinderbet, bet) > 0),'8','godkendt','33')
Avatar billede michael_stim Ekspert
02. juni 2008 - 09:16 #2
Har du prøvet at se hvad denne gi'r?
SELECT id FROM terning_log WHERE FIND_IN_SET(vinderbet, bet)
Avatar billede michael_stim Ekspert
02. juni 2008 - 09:19 #3
Jamen, nu har du jo pludselig 6 kolonner og 4 values.
Avatar billede michael_stim Ekspert
02. juni 2008 - 09:22 #4
Tror ikke du kan gøre sådan her:
((SELECT time,ip,id,bruger_id ...
Skal du ikke have en select for hver værdi?
Avatar billede pitzen Nybegynder
02. juni 2008 - 09:26 #5
SELECT id FROM terning_log WHERE FIND_IN_SET(vinderbet, bet) giver et id. Det virker perfekt.

Jeg har lavet ligende queries der har fungeret således ((SELECT time,ip,id,bruger_id ...
Avatar billede michael_stim Ekspert
02. juni 2008 - 09:27 #6
Istedet for at eksekvere, så prøv at udskrive queryen til skærmen.
INSERT INTO point_log
(terning_id,type,status,point)
values
((SELECT id FROM terning_log WHERE FIND_IN_SET(vinderbet, bet) > 0),'8','godkendt','33')
Avatar billede michael_stim Ekspert
02. juni 2008 - 09:28 #7
Eller den med alle parametrene selvf.
Avatar billede pitzen Nybegynder
02. juni 2008 - 09:30 #8
SELECT time,ip,id,bruger_id FROM terning_log WHERE FIND_IN_SET(vinderbet, bet) > 0

giver:

2008-03-31 13:30:19 | 80.198.40.216 | 7 | 2
Avatar billede michael_stim Ekspert
02. juni 2008 - 09:34 #9
Tænkte mere på den hele INSERT.
Avatar billede pitzen Nybegynder
02. juni 2008 - 09:35 #10
Hvordan får man den udskrevet til skærmen?
Avatar billede michael_stim Ekspert
02. juni 2008 - 09:35 #11
Så du kan se hvordan din SELECT ser ud, i din INSERT.
Avatar billede pitzen Nybegynder
02. juni 2008 - 09:40 #12
Hvordan får man den udskrevet til skærmen?
Avatar billede michael_stim Ekspert
02. juni 2008 - 10:11 #13
echo, hvis du bruger PHP.
Avatar billede pitzen Nybegynder
02. juni 2008 - 10:17 #14
Jeg kører direkte fra db'en..
Avatar billede michael_stim Ekspert
02. juni 2008 - 10:24 #15
INSERT INTO point_log
(time,ip,terning_id,bruger_id,type,status,point)
values
((SELECT time FROM terning_log WHERE FIND_IN_SET(vinderbet, bet) > 0),(SELECT ip FROM terning_log WHERE FIND_IN_SET(vinderbet, bet) > 0),(SELECT id FROM terning_log WHERE FIND_IN_SET(vinderbet, bet) > 0),(SELECT bruger_id FROM terning_log WHERE FIND_IN_SET(vinderbet, bet) > 0),'8','godkendt','33')
Avatar billede pitzen Nybegynder
02. juni 2008 - 10:28 #16
#1242 - Subquery returns more than 1 row
Avatar billede michael_stim Ekspert
02. juni 2008 - 10:34 #17
Så har du fejlen ;o)
Avatar billede pitzen Nybegynder
02. juni 2008 - 10:39 #18
Kan man ikke indsætte alle rækkerne? Eller skal det så gøres ved en while-løkke?
Avatar billede michael_stim Ekspert
02. juni 2008 - 10:54 #19
Du kan kun INSERTE en række af gangen.
Avatar billede pitzen Nybegynder
02. juni 2008 - 11:27 #20
Aha.. Super.. Jeg klarede den med en løkke..

Smider du et svar!

TAK :)
Avatar billede michael_stim Ekspert
02. juni 2008 - 11:55 #21
Ellers tak, samler ikke på point. Læg selv et svar og accepter ;o)
Avatar billede pitzen Nybegynder
02. juni 2008 - 13:06 #22
Så gerne ;)
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