null을 null과 비교할 수 없으며 결과는 항상 거짓임을 읽습니다.참여 중에 null 비교
아래 링크에서 2 개의 null을 비교할 수 있으며 행이 반환됩니다.
CREATE TABLE user (id varchar(50), banstatus varchar(100));
INSERT INTO user (id, banstatus) VALUES ('1', '1');
INSERT INTO user values ('2', 'NULL');
CREATE TABLE banstatus (id varchar(50), texti varchar(100));
INSERT INTO banstatus VALUES('1', 'Banned');
Insert into banstatus values ('NULL' , 'NULL');
select * from user as u
join banstatus as b on u.banstatus=b.id
http://sqlfiddle.com/#!9/33f25/1/0
그래서 널 (null)의 비교에 대한 올바른 문장은 무엇인가?
'NULL'문자열을 사용한다! 9/0f1cce/1/0이 바이올린은 2 번째 레코드가 이제 NULL 문자열이 아니더라도 '1'레코드가 반환되었음을 보여줍니다. 그래서 "null의 비교에 대한 올바른 진술은 무엇입니까?" 당신이 읽은 것. – xQbert
다음 사례를 고려하십시오. http://sqlfiddle.com/#!9/0f1cce/7/1'banstatus가 null 인 경우 'Null'이 isNull로 끝나는 경우 case banstatus = null 인 경우 'NULL = NULL' elsest NullCantCompare, banstatus <> null then 'NULL 인 경우'NULL <=> Null 'else 'NOT NULL <=> NULL'end as NULLSafeCompare' –
xQbert
사용자의 ID 값이 왜 VARCHAR (50)입니까? 그것은 틀린 것처럼 보인다. 일반적으로 'INT AUTO_INCREMENT PRIMARY KEY NOT NULL' 타입을 사용하여이 숫자들을 순차적으로 생성합니다. – tadman