Autor Zpráva
null2
Profil *
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
Nejsem si jistý, ale zkusil bych toto:
SELECT *
FROM `db`.`tabulka`
WHERE tabulka.t_x = 2
LIMIT 6000,5
null2
Profil *
Someone:
Pořád to samé,..
Someone
Profil
Je sloupec t_x typu int?
ahoj
Profil *
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 *
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
ahoj:
Pravda, přehlédl jsem to.
null2
Profil *
ahoj:
ta tabulka má 1 000 000 řádků
Someone
Profil
null2:
Nejde o to kolik jich má tabulka, jde o to kolik jich splňuje podmínku WHERE t_x = 2
null2
Profil *
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 *
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
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 *
Someone:
díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: