Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] 1 = 1 a obciązenie SQL.
Forum PHP.pl > Forum > Przedszkole
seba22
Witam,

Czy zapytanie where 1=1 jest obciążające dla serwera ?


Czy wykona je tak samo szybko, jak by go nie było ?

Czy jeżeli podoklejam 5 takich klauzuli do jednego zapytania, to czy zajedzie mi serwer, czy wykona to w mikro sekundę ?

pozdrawiam
wookieb
A co to w ogóle za zapytanie? Po co ci where 1=1?questionmark.gif?
Jest to zupełnie zbędne więc to wywal.
Raczej tak samo szybko. Zobacz sobie EXPLAIN
seba22
Kwestia logistyczna, polegająca na kontroli czy.

Jeżeli początek zapytania zaczyna się od WHERE ?

To parametr podajemy poprzez
IMIE = 'test'

Kolejny poprzez AND
AND IMIE = 'test'

Reasumując jest WHERE a nie ma parametru, to piszemy sama wartość.
jest where z parametrem piszemy AND
Nie ma parametru ani where dopisujemy where i parametr.

Jakieś głupie to jest z punktu widzenia logicznego.

Nie mogę sobie poradzić z algorytmem na to...
wookieb
Ty bredzisz czy piszesz po ludzku? Bo bardzo bardzo trudno cię zrozumieć.
  1. SELECT * FROM tabela

Wybierze wszystkie rekordy z tabeli
  1. SELECT * FROM tabela WHERE 1=1
TEŻ wybierze wszystkie rekordy z tabeli (ale po co?)
  1. SELECT * FROM tabela WHERE 1=1 AND 1=1
TEŻ! wybierze wszystkie rekordy w tabeli (ale po co?)

  1. SELECT * FROM tabela WHERE imie='test'
Wszystkie rekordy w ktorych pole imie ma zawartosc test
  1. SELECT * FROM tabela WHERE imie='test' AND imie='test'
TEŻ Wszystkie rekordy w ktorych pole imie ma zawartosc test
(ale po co?)

Te zapytania przy których dopisałem (ale po co?) są bezsensowne.
dr_bonzo
Cytat
Kwestia logistyczna, polegająca na kontroli czy.

Jeżeli początek zapytania zaczyna się od WHERE ?

To parametr podajemy poprzez
IMIE = 'test'

Kolejny poprzez AND
AND IMIE = 'test'

Reasumując jest WHERE a nie ma parametru, to piszemy sama wartość.
jest where z parametrem piszemy AND
Nie ma parametru ani where dopisujemy where i parametr.



A slyszal kiedys o join()/implode() i count()?

  1. <?php
  2. $params = array( 'name'=> 'bob', 'num' => 3 );
  3. if ( count( $params ) )
  4. {
  5.   $sql .= " WHERE " .  join( " AND ", $params );
  6. }
  7. ?>
seba22
select * from tabela WHERE imie='test' AND imie='test'

Tu muszę sprawdzać 2 warunki... czy istnieje where, jezeli nie to dopisać,
i sprawdzić czy istnieje pierwsze imie='test' jezeli tak to kolejne dopisać jako AND imie = 'test' jeżeli NIE istnieje do where dopisać samo imie.

Parametrów może być ponad 20, i nie wszystkie są typu mandatory.
Np facet nie wpisze imienia, sprawdzam acha nie wpisał, no to muszę to pominąć, no i zaczyna się że pierwszy pominąłem....

Poza tym, jak nic nie poda, kompletnie to ma dostać pełną liste wyników... więc pisanie samego where na poczatku też robi ssyf, bo zostanie where i pusty warunek, no to wywlai syntax error.

Trzeba to logicznie rozłożyć, tak żeby było miłe, fajne, i skalowalne.
Zebym mógł dokładać nowe pola, jak rękawiczki.
Fuk fuk, i dodaje datę...

Dla tego tu jest ten problem, problem się zaczyna.

Musimy go jakoś rozwiązać.
no_face
To moze walidacja wprowadzanych danych.
seba22
Nie są mandatory, co znaczy mogą pozostać puste, ba nawet muszą, w pewnych okolicznościach.

Dobra, będę siedział i myślał, mam cały dzień jak to rozplanować...

Kartka i ołówek...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.