LIMIT med GROUP BY i mysql

Databaser & SQL

0 svar · 261 visningar · startad av SoMeOnE

Medlem sedan nov. 200254 inlägg
Trådstart#1

Håller på att göra en sökfunktion till en sida och använder mig av följande sql:

SELECT language.Page, GROUP_CONCAT( language_translation.Value
ORDER BY CHAR_LENGTH( language_translation.Value ) DESC ) AS Value
FROM language
INNER JOIN language_translation ON language.ID = language_translation.LanguageID
WHERE language_translation.Value LIKE '%a%'
AND language.Page NOT
IN (
'All', 'Search', 'cookies', 'Index', 'Contact', '404'
)
GROUP BY language.Page
LIMIT 0 , 10

Problemet är att den inte returnerar 10, utan bara 7, rader även fast ifall jag tar bort limit så returnerar den 11 rader. Jag misstänker att det har att göra med group by efter som ifall jag tar bort det (och tillhörande saker) så får jag ut 10 rader med 3 dubbletter. Finns det något sätt att göra så den returnerar så många rader som limit är på, ifall det finns tillräckligt många där dvs, eller måste jag hämta ut alla rader och sen endast visa de jag vill ha m h a PHP? Blir svårt att bygga ett paging-system ifall jag inte får ut rätt mängd poster.

251 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)