Zahadny LIMIT – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zahadny LIMIT – MySQL – Fórum – Programujte.comZahadny LIMIT – MySQL – Fórum – Programujte.com

 

polonium0
Návštěvník
27. 12. 2009   #1
-
0
-

Zdravim,

tak jsem zjistil, že pokud napíšů do sql příkazu LIMIT nevypíše mi všechny hodnoty, které chci. Dám příklad:

//sql prikaz bez limitu

SELECT `products`.`products_id` as Pid
FROM `products`,`products_to_categories`
WHERE `products`.`products_status`=1
AND `products`.`products_id` = `products_to_categories`.`products_id`
AND `products_to_categories`.`categories_id`=1
ORDER BY `products`.`date_added` ASC

//vysledek
[1] 6
[2] 3
[3] 4
[4] 7
[5] 8
[6] 9
[7] 10
[8] 11
[9] 12
[10] 13
[11] 14
[12] 15
[13] 16
[14] 17
[15] 5

//sql prikaz s limitem

SELECT `products`.`products_id` as Pid
FROM `products`,`products_to_categories`
WHERE `products`.`products_status`=1
AND `products`.`products_id` = `products_to_categories`.`products_id`
AND `products_to_categories`.`categories_id`=1
ORDER BY `products`.`date_added` ASC LIMIT 0,12

//vysledek
[1] 6
[2] 16
[3] 15
[4] 14
[5] 13
[6] 12
[7] 11
[8] 10
[9] 9
[10] 8
[11] 7
[12] 4

Z nějakého mě záhadného důvodu zmizely některé hodnoty. Vím, že to tak má být když použiji LIMIT ale mizí mi úplně jiné hodnoty než by měly. Nevíte co s tím?

PS.: v hranaté závorce je číslo řádku.

Nahlásit jako SPAM
IP: 85.161.208.–
polonium0
Návštěvník
28. 12. 2009   #2
-
0
-

Je moje domněnka správná, že nejdřív sql příkaz vybere data (SELECT) z tabulky (FROM) podle podmínek (WHERE), seřadí je (ORDER BY) a až poté vyčlení úsek těchto vyselektovaných a seřazených dat (LIMIT), která budou dále zpracovávána...

Je možné, že by to mohlo být podobností dat v tabulce ??

Nahlásit jako SPAM
IP: 85.161.203.–
liborb
~ Redaktor
+18
Guru
28. 12. 2009   #3
-
0
-

Nevím jak MySQL, ale mě by se na tom nezdálo to třídění. Třídíš dle `products`.`date_added`, ale takový sloupec není ve výsledku. Je to vůbec možné takhle používat? :smile11:

Nahlásit jako SPAM
IP: 85.207.166.–
polonium0
Návštěvník
28. 12. 2009   #4
-
0
-

To podle čeho třídím a co budu zpracovávat není důležité. Hlavní je když ta MySQL tabulka má sloupce, které jsou v příkazu.

Nahlásit jako SPAM
IP: 85.161.203.–
liborb
~ Redaktor
+18
Guru
29. 12. 2009   #5
-
0
-

Nechtěl jsem nijak znevažovat tvůj SQL dotaz, jenom jsem tě chtěl upozornit, že ORDER BY třídí tabulku výsledků. A když ji třídíš podle sloupce, který ve výsledné tabulce není, tak můžeš dostat zajímavé výsledky (o čemž se sám přesvědčil).

Nahlásit jako SPAM
IP: 85.207.166.–
29. 12. 2009   #6
-
0
-

To liborb :
Nebude problem v tom že má viac riadkov rovnaké hodnoty v stlpci `products`.`date_added, podla ktoreho triedis? Preto mysql dopyt vyberie raz take raz onake. V tom pripade by ale nestačila podobnosť dát v tabulke ale museli by byť úplne rovnaké.

Nahlásit jako SPAM
IP: 78.141.67.–
polonium0
Návštěvník
29. 12. 2009   #7
-
0
-

Diky, je to tak, zpusobovala to shodnost v date_added. Potřeboval jsem otestovat stránkování a řazení produktů a tak jsem zkopiroval jeden řádek v tabulce :) a způsobilo to co to způsobilo :)

Nahlásit jako SPAM
IP: 85.132.159.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Záhadný problém — založil Petr

Záhadný error — založil selkir

Limit — založil DuDo

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý