Avatar billede hjep Nybegynder
05. november 2002 - 10:27 Der er 9 kommentarer og
1 løsning

Ændring af sqlstmt access til mysql

Jeg er i fuld gang med at ændre mine databaser fra access til mysql. Det har givet lidt problemer i "aspen" men det meste har jeg fået rettet til.
Der er dog lige to ting der driller. Før i tiden har jeg fået vist kun den første nyhed ved nedenstående og nyhed 3-25 ved den nedenunder igen. Hvordan skal det skrives når databasen er mysql


SQLstmt = "SELECT TOP 1 * FROM nyhed ORDER BY ID desc;"

SQLstmt = "SELECT TOP 25 * FROM nyhed WHERE ID NOT IN(SELECT TOP 2 ID FROM nyhed ORDER BY ID DESC) ORDER BY ID Desc;"
Avatar billede eagleeye Praktikant
05. november 2002 - 10:35 #1
Det hedder ikke TOP i mySQL men LIMIT


SQLstmt = "SELECT * FROM nyhed ORDER BY ID desc LIMIT 0,1;"
Avatar billede eagleeye Praktikant
05. november 2002 - 10:36 #2
og den anden:

SQLstmt = "SELECT * FROM nyhed WHERE ID NOT IN(SELECT ID FROM nyhed ORDER BY ID DESC LIMIT 0,2) ORDER BY ID Desc LIMIT 0,25;"


Det mulig det skal være 1 og ikke 0 som start på LIMIT:

LIMIT start, antal
Avatar billede eagleeye Praktikant
05. november 2002 - 10:38 #3
du kan enda undvære start hvis du bare vil havde fra starten af lige som TOP:

SQLstmt = "SELECT * FROM nyhed ORDER BY ID desc LIMIT 1;"
Avatar billede hjep Nybegynder
05. november 2002 - 10:48 #4
Det ser ud til at virke.

Meget fint
Avatar billede hjep Nybegynder
05. november 2002 - 11:20 #5
Ups der var jeg lidt for hurtigt. Den sidstnævne fejler uanset om jeg skriver 0 el. 1

SQLstmt = "SELECT * FROM nyhed WHERE ID NOT IN(SELECT ID FROM nyhed ORDER BY ID DESC LIMIT 0,2) ORDER BY ID Desc LIMIT 0,25;"

[TCX][MyODBC]You have an error in your SQL syntax near 'SELECT ID FROM nyhed ORDER BY ID DESC LIMIT 0,2) ORDER BY ID Desc LIMIT 0,25' at line 1
Avatar billede eagleeye Praktikant
05. november 2002 - 12:08 #6
hvad hvis du fjerner det første limit, jeg kan godt se  der ikke kommer nogle records ud af databasen, men for test for det kan også være IN som driller:

SQLstmt = "SELECT * FROM nyhed WHERE ID NOT IN (SELECT ID FROM nyhed ORDER BY ID DESC) ORDER BY ID Desc LIMIT 0,25;"
Avatar billede eagleeye Praktikant
05. november 2002 - 12:08 #7
arh du vil vælge de føste 2 fra ikke ???
Avatar billede eagleeye Praktikant
05. november 2002 - 12:09 #8
Så er det jo netop LIMIT har sin styrke fremfor TOP, da du kan angive en start..:

Sådan her vælger den 25 og start ved den 3. nyeste:

SQLstmt = "SELECT * FROM nyhed ORDER BY ID Desc LIMIT 2,25;"
Avatar billede hjep Nybegynder
05. november 2002 - 13:53 #9
SMART! Nu har jeg også forstået det
Avatar billede random Nybegynder
19. januar 2009 - 21:18 #10
Hvordan vælger jeg så 4 nyheder og den skal udskrive fra nr. 2??

Desc LIMIT 2,4 ??
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
Kurser inden for grundlæggende programmering

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