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ć.