Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 "where 1=1" 문은 무엇입니까?

<시간/>

MySQL에서 "Where 1=1"은 이 문장이 항상 참이기 때문에 테이블의 모든 행을 나타냅니다. 이 진술을 더 잘 이해하기 위한 예는 다음과 같습니다 -

먼저 create 명령을 사용하여 테이블을 생성합니다. 이것은 다음과 같이 주어집니다 -

mysql> CREATE table WhereConditon-> (-> id int,-> name varchar(100)-> );Query OK, 0개의 행이 영향을 받았습니다(0.43초)

테이블을 성공적으로 생성한 후 insert 명령을 사용하여 일부 레코드를 삽입합니다. 이에 대한 쿼리는 다음과 같이 제공됩니다. -

mysql> INSERT into WhereConditon values(1,'John');Query OK, 1개의 row가 영향을 받았습니다(0.16초)mysql> INSERT into WhereConditon values(2,'Smith');Query OK, 1개의 row가 영향을 받았습니다(0.15초). )mysql> INSERT into WhereConditon values(3,'Bob');Query OK, 1개의 row가 영향을 받았습니다(0.16초)mysql> INSERT into WhereConditon values(4,'David');Query OK, 1개의 row가 영향을 받았습니다(0.13초) 

이제 레코드가 성공적으로 삽입되었으므로 select 문을 사용하여 테이블의 레코드 수를 확인할 수 있습니다. 이것은 다음과 같이 주어집니다 -

mysql> SELECT * from WhereConditon;

위의 쿼리를 실행한 후 테이블의 모든 레코드는 다음과 같이 볼 수 있습니다. -

+------+-------+| 아이디 | 이름 |+------+-------+| 1 | 존 || 2 | 스미스 || 3 | 밥 || 4 | David |+---+-------+4행 세트(0.00초)

이제 1=1 문을 선택 문과 함께 사용하여 테이블에 이름을 표시합니다. 모든 이름은 1=1이 항상 true로 표시됩니다.

이에 대한 쿼리는 다음과 같이 제공됩니다. -

mysql> 1=1인 WhereConditon에서 이름 선택

다음은 위 쿼리의 출력입니다.

+-------+| 이름 |+-------+| 존 || 스미스 || 밥 || David |+----+4행 세트(0.00초)