SQL, gdzie 1 = 1

SQL, gdzie 1 = 1
Jeśli wcześniej pracowałeś z bazami danych SQL, być może natkniesz się na stwierdzenie, w którym 1 = 1. Jest to powszechne stwierdzenie, które służy do zwrócenia wszystkich rekordów z danej tabeli.

Stwierdzenie, w którym 1 = 1 w SQL oznacza prawdziwe. Jest to ta sama operacja, co uruchomienie instrukcji Select bez klauzuli Where.

Możesz zapytać, jaki jest cel klauzuli, w której 1 = 1?

W większości przypadków będziesz musiał użyć tej klauzuli tylko wtedy, gdy trzeba zbudować dynamiczne instrukcje SQL. Po zastosowaniu klauzuli Where 1 = 1, wszystkie kolejne stwierdzenia po rozpoczęciu od słowa „i”.

To bardziej jak sposób na uwzględnienie eksploracyjnych instrukcji SQL w bardzo leniwy i wygodny sposób. Pozwala również na wypowiedzenie zapytania w prosty sposób.

Rozważ przykład, w którym zgadujesz identyfikator kolumny. Zakładając, że nie jesteś pewien, czy ten identyfikator istnieje w bazie danych, możesz użyć czegoś takiego.

Wybierz * od użytkowników, gdzie id = 10 lub 1 = 1;

Powyższe zapytanie używa instrukcji lub. Stąd tylko jeden z warunków musi być prawdziwy, aby zapytanie działało.

Nawet jeśli nie ma użytkownika z identyfikatorem 10, 1 = 1 zawsze będzie oceniać true, a zapytanie będzie pobierać wszystkie wiersze w określonej tabeli.

Wykonanie zapytania

Jeśli nie polujesz na informacje o bazach danych, rzadko będziesz musiał się martwić o klauzulę 1 = 1.

Możesz jednak zapytać, czy klauzula poprawia czas wykonania.

Odpowiedź brzmi nie.

Ustawienie klauzuli, w której 1 = 1 jest taki sam jak uruchomienie zapytania bez klauzuli gdzie. Większość silników bazy danych usunie klauzulę przed wykonaniem instrukcji.

Wniosek

Ten krótki artykuł opisuje, co SQL, w której klauzula 1 = 1 i dlaczego możesz z niego korzystać.