Mysql 의 NULL 과 Empty String
create table tablist(TABLE_SCHEMA varchar(40),TABLE_NAME varchar(40),COLUMN_NAME varchar(40),COLUMN_TYPE varchar(40),
IS_NULLABLE varchar(10),COLUMN_DEFAULT varchar(40),COLUMN_COMMENT varchar(1000),REMARK varchar(2000));
insert into tablist(TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_TYPE,IS_NULLABLE,COLUMN_DEFAULT,COLUMN_COMMENT)
select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_TYPE,IS_NULLABLE,COLUMN_DEFAULT,COLUMN_COMMENT
from information_schema.`COLUMNS` where TABLE_SCHEMA='leo';
그리고 tablist 표를 조회 합 니 다.어떤 열 에 comment 가 없 는 지 보 세 요.그래서:
select * from tablist where COLUMN_COMMENT is null;
알 아 낸 결과 엠 티 세트 라 니.그러나 위 검색 결과 와 navicat 에서 알 수 있 듯 이 null 값 은 결과 에'null'이라는 단 어 를 집중 적 으로 표시 하고 빈 문자열 은 비어 있 습 니 다.자 료 를 찾 아 보 니 Mysql 의 null 값 과 빈 문자열 이 다 릅 니 다.여기 가 이상 합 니 다.COLUMNCOMMENT 는 insert 를 거 친 후에 null 값 이 빈 문자열 로 바 뀌 었 습 니 다.(원인 은 밝 혀 지지 않 았 습 니 다.)
사용
select * from tablist where COLUMN_COMMENT='';
조회 가 정상 입 니 다.NULL columns require additional space in the row to record whether their values are NULL.For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.
Mysql 의 myisam 엔진 에서 null 값 은 추가 저장 공간(1bit)을 차지 하고 빈 문자열 은 공간 을 전혀 차지 하지 않 습 니 다.또한 null 값 은 B 트 리 색인 에 저장 되 지 않 고 데이터 양 이 많 을 때 심각 한 성능 문 제 를 일 으 킬 수 있 습 니 다.
둘 의 조회 방식 도 다르다.null 값 조 회 는 is null/is not null 조 회 를 사용 하고 empty string 은=또는!=조회 하면 됩 니 다.
총결산
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 Mysql 의 NULL 과 Empty String 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.