Autor | Zpráva | ||
---|---|---|---|
null2 Profil * |
#1 · Zasláno: 3. 4. 2012, 16:44:49
Ahoj, nevim proc ale tato podminka vrati nulový počet řádků ikdyž v danem vyběru slupec t_x obsahuje číslo 2
Použiju: SELECT * FROM `db`.`tabulka` WHERE t_x = 2 LIMIT 6000,5 vysledek: MySQL vrátil prázdný výsledek (tj. nulový počet řádků). ( Dotaz zabral 0.0959 sekund ) Použiju: SELECT * FROM `db`.`tabulka` LIMIT 6000,5 vysledek: id a b c t_x d 6001 1333569689 9989 1351 2 data 6002 1333569689 8091 5674 1 data 6003 1333569689 3115 236 2 data 6004 1333569689 1398 1557 2 data 6005 1333569689 6114 1602 1 data Kde je chyba?? Diky |
||
Someone Profil |
#2 · Zasláno: 3. 4. 2012, 16:48:04
Nejsem si jistý, ale zkusil bych toto:
SELECT * FROM `db`.`tabulka` WHERE tabulka.t_x = 2 LIMIT 6000,5 |
||
null2 Profil * |
#3 · Zasláno: 3. 4. 2012, 17:06:42
Someone:
Pořád to samé,.. |
||
Someone Profil |
#4 · Zasláno: 3. 4. 2012, 17:07:38
Je sloupec t_x typu int?
|
||
ahoj Profil * |
#5 · Zasláno: 3. 4. 2012, 17:23:33
LIMIT neznamená "vypiš všechno od ID 6000", ale "vypiš to, co má při daném řazení pořadí 6000 a víc".
Takže v dané tabulce při daném WHERE není víc než 6000 položek a tudíž není co zobrazit. |
||
null2 Profil * |
#6 · Zasláno: 3. 4. 2012, 17:24:04
Someone:
Ano Pokud zkusím pro test vypsat nějaké id z te tabulky a chci aby to začalo hledat od 800000 řádku: SELECT * FROM `db`.`tabulka` WHERE id = 900000 LIMIT 800000,1 Vyhodí to nulový počet řádků Ale pokud zadám aby to hledalo od 0: SELECT * FROM `db`.`tabulka` WHERE id = 900000 LIMIT 0,1 Tak to vyhodí řádek s id 900000 (toto funguje) Nicméně pokud změním LIMIT např na 1,1 (tzn. hledej od řádku 1) nebo 2,1 nebo "n",1 tak už to vrátí nulový počet řádků ve výsledků.. |
||
Kajman Profil |
null2:
LIMIT 6000,5 znamená, že přeskočí prvních vyhovujících 6000 řádků (což bez použití řazení ani nemá moc smysl) a vybere následujících pět. Podmínku t_x = 2 asi splňuje menší počet řádků. Možná hledáte WHERE id>6000 and t_x = 2 ORDER BY id LIMIT 5 |
||
Someone Profil |
#8 · Zasláno: 3. 4. 2012, 17:24:34
ahoj:
Pravda, přehlédl jsem to. |
||
null2 Profil * |
#9 · Zasláno: 3. 4. 2012, 17:24:53
ahoj:
ta tabulka má 1 000 000 řádků |
||
Someone Profil |
#10 · Zasláno: 3. 4. 2012, 17:25:51
null2:
Nejde o to kolik jich má tabulka, jde o to kolik jich splňuje podmínku WHERE t_x = 2 |
||
null2 Profil * |
#11 · Zasláno: 3. 4. 2012, 17:27:32
Kajman:
No v základu chci vybrat řádky např od 6000 do 7000 a zároveň jen ty kde platí podmínka t_x = 2 |
||
null2 Profil * |
#12 · Zasláno: 3. 4. 2012, 17:30:26
Someone:
„Nejde o to kolik jich má tabulka, jde o to kolik jich splňuje podmínku WHERE t_x = 2“ No právě v daném výběru v první ukázce je tato podmínka splněna ve 3 řádcích což sem si ověřil že jsem zadal úplně ten samý sql dotaz ale smazal sem tu podmínku abych se podíval jestli v daném výběru ve sloupci t_x jsou nějaké dvojky |
||
Someone Profil |
#13 · Zasláno: 3. 4. 2012, 17:32:47 · Upravil/a: Someone
Ano, ve třech řádcích, jenže ten limit říká, že se má přeskočit 6000 řádků a poté vypsat 5. jelikož tu podmínku nesplňuje ani těch 6000, tak se to těžko vypíše.
[#11] null2 SELECT * FROM tabulka WHERE id BETWEEN 6000 AND 7000 AND th_x = 2 |
||
null2 Profil * |
#14 · Zasláno: 3. 4. 2012, 17:46:01
Someone:
díky |
||
Časová prodleva: 14 let
|
0