Programátor PHP – Praha – dlouhodobá spolupráce
Zobrazují se odpovědi 1 až 7 z 7

Zvlastne chovani MySQL pri dotazu

  1. Zdravim mam dotaz ohledne SQL

    Muj sql vypada nejak takhle:

    SELECT id,sloupec1,... FROM tabulke WHERE 1 AND sloupec1 = hodnota AND (id <> hodnota2 OR id <> hodnota3 OR id <> hodnota4)

    SQL select mi bohuzel zobrazi i polozky ktere jsou zadane v te druhe casti "AND (id <> ...)"

    Ze by se zobrazit nemeli. Nevite proc. Diky za odpovedi.

  2. Happy Robot :]
  3. tohle je cele uplne spatne :) na tohle se pouziva syntax IN () v pripade ze nejaka cisla chces vyloucit pak zapis NOT IN ... navic tam mas WHERE 1 AND - proc proboha? :)

    WHERE sloupec1 = hodnota AND id NOT IN (1,2,4,5,6,7)

    enjoy ;)

  4. Jo where 1 je tam proto protoze se generuje WHERE dynamicky, Takze proto to tam je.

  5. Aleš vám už poradil NOT IN, a pokud se zamyslíte, šlo by to i tím vaším zápisem - jenže potřebujete AND místo OR.

  6. No pokud potrebujeme vyexcludovat nejaka konkretni ID pak z duvodu vykonu rozhodne pouzivat NOT IN, jestlize opuzijene AND a tunu podminek, bude tim trpet vykon, u vetsich tabulek je to uz hodne solidni rozdil

  7. Souhlasím s Alešem.

  8. Souhlas, (NOT) IN je rychlejší, pokud jsou ve výčtu konstanty stejného typu (čísla vs řetězce). MySQL je před vykonáním dotazu seřadí a dokáže na tu část podmínky odpovědět rychleji pomocí binárního hledání.
    http://dev.mysql.com/doc/refman/5.1/...ml#function_in

    Zatím co u AND / OR varianty musí projít všechny části podmínky.
    http://lists.mysql.com/mysql/216945

    Ve svém příspěvku jsem chtěl upozornit na to, kde byla v dotazu logická chyba.
    Ačkoliv v přirozeném jazyce řekneme "hodnota nesmí být X NEBO Y", z pohledu SQL myslíme "hodnota nesmí být X A zároveň nesmí být Y".

Podobná témata

  1. gps v mysql dotazu
    By Tom Novy in forum Databáze
    Odpovědí: 4
    Poslední příspěvek: 08.01.2011, 00:16
  2. using v mysql dotazu
    By pojistovak in forum PHP
    Odpovědí: 2
    Poslední příspěvek: 21.05.2010, 23:55
  3. optimalizace MySQL dotazu
    By frances in forum PHP
    Odpovědí: 10
    Poslední příspěvek: 19.06.2009, 14:37
Hostujeme u Server powered by TELE3