Avatar billede lotze Nybegynder
21. juni 2005 - 10:36 Der er 9 kommentarer og
1 løsning

SQL kald virker ikke!

string sql = "select * from "+stock+" where ParrentId=0 order by Id desc limit '" +max+"'";

Den brokker sig over den sidste del af kaldet "max" som er en int værdi.
Kan ikke lige se hvad der skulle være galt med det i MySQL?
Avatar billede fennec Nybegynder
21. juni 2005 - 10:39 #1
limit værdien skal ikke i '.

string sql = "select * from "+stock+" where ParrentId=0 order by Id desc limit " +max;
Avatar billede voirsous Nybegynder
21. juni 2005 - 10:39 #2
Behøver du ' og ' hvis det er en integer værdi (max)...?
Avatar billede barklund Nybegynder
21. juni 2005 - 10:43 #3
Hvad bliver din SQL-streng til? Altså hvilken værdi har sql-variablen?

For ovenstående kører jo ikke rent faktisk strengen gennem MySQL - det laver jo bare en streng i det givne sprog (c#, java, noget).

--
Morten Barklund
Avatar billede barklund Nybegynder
21. juni 2005 - 10:44 #4
(og jeg fisker lidt efter at få den faktiske fejlmeddelelse, hvis der altså er en sådan)
Avatar billede barklund Nybegynder
21. juni 2005 - 10:45 #5
Og ydermere er mysql så vidt jeg husker pænt ligeglad med, om int's er i single quotes - det må de godt være uden at det giver fejl. Dog kan det være, at det ikke er tilfældet med limit :)
Avatar billede lotze Nybegynder
21. juni 2005 - 10:45 #6
nej, åbenbart behøver jeg ikke ' '.
Point til voirsous
Avatar billede barklund Nybegynder
21. juni 2005 - 10:48 #7
Oh, det er faktisk en fejl at sætte grænserne i limit i singlequotes - mærkelig inkonsistens i MySQL.

Du behøver _aldrig_ quotes om tal i SQL og i de fleste andre DBMS'er er det direkte en fejl at lave. Men i MySQL kan man godt skrive id = '1', selvom id er et tal.

Hvorfor man så ikke kan i limit og offset forstår jeg ikke lige :)

--
Morten Barklund
Avatar billede lotze Nybegynder
21. juni 2005 - 10:57 #8
TIl Barklund. min løsning ser således ud:
string sql = "select * from "+stock+" where ParrentId=0 order by Id desc limit "+max+";";

Tror du har ret mht limit værdien!
Avatar billede fennec Nybegynder
21. juni 2005 - 11:05 #9
Det er fordi limit er en del af MySQL's sprog, og ikke bare en sammenligning af to værdier (som på where). Limit tager jo også to værdier, så man kan trække "mellem" resultater ud:

select * from EnTabel limit 10,10 <-- viser række 11 til 20
Avatar billede lotze Nybegynder
21. juni 2005 - 11:11 #10
Okay cool, nok. Du får Point. Det var sådan set også dig der gav den rigtige løsning først!
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