WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   SQL: Offset-problem... (https://www.wn.se/forum/showthread.php?t=10547)

Tvartom 2005-10-26 02:28

Hej!
Med följande table:

Kod:

nyhet
------------------------------------------
ID (int)
INFO (text)
PRODUKT (enum('ja','nej'))

Har jag en förstasida med nyheter som hämtas med:
Kod:

SELECT * FROM nyhet LIMIT 8,0
Sedan behöver ska jag ha två arkivsidor med produkter/ej produkter skilda
produktsida:
Kod:

SELECT * FROM nyhet WHERE produkt = 'ja'
samt
vanliga nyheter:
Kod:

SELECT * FROM nyhet WHERE produkt = 'nej'
Nu vill jag inte att de nyheterna som finns på första sidan ska finnas på någon av
arkiv-sidorna: Hur löser jag det med SQL-fråga?
Problemmet är att det kan vara allt ifrån 0 till 8 st som är där.

Förslag?



System:
MySQL 4.1.13
Debian
PHP

guran 2005-10-26 02:42

Ett förslag:

Kod:

SELECT *
FROM nyheter
WHERE produkt = 'ja' AND id NOT IN (SELECT id FROM nyhet LIMIT 8,0)


Tvartom 2005-10-28 14:41

Citat:

Originally posted by guran@Oct 26 2005, 01:42
Kod:

SELECT *
FROM nyheter
WHERE produkt = 'ja' AND id NOT IN (SELECT id FROM nyhet LIMIT 8,0)


Ahh... trodde jag var räddad men:

Kod:

#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Någon föslag hur man kommer runt det?

guran 2005-10-28 14:56

Ett förslag till:

Kod:

CREATE TEMPORARY TABLE temp_nyheter REPLACE
SELECT id FROM nyheter LIMIT 8,0

SELECT *
FROM nyheter
WHERE produkt = 'ja' AND id NOT IN (SELECT id FROM temp_nyheter)



Alla tider är GMT +2. Klockan är nu 14:33.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson