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

MySQL에서 유형을 비교할 때 오류가 발생하지 않는 이유는 무엇입니까?

<시간/>

string을 int와 비교하려고 하면 MySQL은 string을 int로 변환하기 때문에 오류를 발생시키지 않습니다. 먼저 테이블을 생성하겠습니다 -

mysql> Create table DemoTable1852 ( Value1 varchar(20), Value2 int );쿼리 OK, 영향을 받는 행 0개(0.00초)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable1852 values('1John',1);Query OK, 1개의 row가 영향을 받았습니다(0.00초)mysql> insert into DemoTable1852 values('John',1);Query OK, 1개의 row가 영향을 받았습니다(0.00초) )mysql> insert into DemoTable1852 values('1',1);Query OK, 1개의 row가 영향을 받았습니다(0.00초)mysql> insert into DemoTable1852 values('John1',1);Query OK, 1개의 row가 영향을 받았습니다(0.00sec) 

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> DemoTable1852에서 * 선택;

이것은 다음과 같은 출력을 생성합니다 -

+--------+--------+| 가치1 | 값2 |+--------+--------+| 1요한 | 1 || 존 | 1 || 1 | 1 || 존1 | 1 |+--------+--------+4행 세트(0.00초)

다음은 MySQL에서 유형을 비교하는 쿼리이며 오류가 발생하지 않습니다 -

mysql> DemoTable1852의 결과로 Value1,Value2, Value1=Value2를 선택합니다.

이것은 다음과 같은 출력을 생성합니다 -

+--------+--------+--------+| 가치1 | 가치2 | 결과 |+--------+--------+--------+| 1요한 | 1 | 1 || 존 | 1 | 0 || 1 | 1 | 1 || 존1 | 1 | 0 |+--------+--------+--------+세트에 행 4개, 경고 3개(0.00초)