Nice programing

MySql 쿼리 선택에서 NULL을 빈 문자열로 바꾸기

nicepro 2020. 12. 13. 11:06
반응형

MySql 쿼리 선택에서 NULL을 빈 문자열로 바꾸기


선택에서 NULL 값을 빈 문자열로 어떻게 대체합니까? "NULL"값을 출력하는 것은 매우 전문적이지 않습니다.

이것은 매우 이례적이며 내 구문에 따라 작동 할 것으로 예상합니다. 왜 그렇지 않은지 설명을 기대합니다.

select CASE prereq WHEN (prereq IS NULL) THEN " " ELSE prereq end from test;

원본 테이블의 모양, 원하는 내용 및 실제 인쇄 내용의 예 :

original     wanted      what actually prints
--------     ------      ---------------------
value1       value1      
NULL                     NULL
value2       value2      
NULL                     NULL

보시다시피 내가 원하는 것과 반대이므로 IS NULL을 IS NOT NULL로 뒤집어 보았고 당연히 수정하지 않았으며 작동하지 않은 경우의 위치를 ​​바꾸려고 시도했습니다.

편집 : 아래 주어진 3 가지 솔루션이 모두 작업을 수행하는 것 같습니다. 문안 인사

select if(prereq IS NULL ," ",prereq ) from test
select IFNULL(prereq,"") from test
select coalesce(prereq, '') from test

NULL 값을 포함한 모든 값을 출력해야하는 경우 :

select IFNULL(prereq,"") from test

SELECT COALESCE(prereq, '') FROM test

Coalesce는 왼쪽에서 오른쪽으로 전달 된 null이 아닌 첫 번째 인수를 반환합니다. 모든 주장이 null이면 null을 반환하지만 여기에 빈 문자열을 적용하므로 null 값이 반환되지 않습니다.

또한 COALESCE 연산자는 표준 SQL에서 지원됩니다. 이것은 IFNULL 의 경우가 아닙니다 . 따라서 전자를 사용하는 것이 좋습니다. 또한 COALESCE는 2 개 이상의 매개 변수를 지원하며 널이 아닌 일치 항목이 발견 될 때까지 매개 변수를 반복합니다.


아래에서 시도하십시오.

  select if(prereq IS NULL ," ",prereq ) from test

이러한 내장 함수 중 일부는 작동해야합니다.

Coalesce
Is Null
IfNull

원래 형태가 거의 완벽합니다, 당신은 생략 할 수있다 습득 조건CASE :

SELECT
  CASE
    WHEN prereq IS NULL THEN ' '
    ELSE prereq
  END AS prereq
FROM test;

시도해보십시오 COALESCE. NULL이 아닌 첫 번째 값을 반환합니다.

SELECT COALESCE(`prereq`, ' ') FROM `test`

이것을 시도하면 빈 줄도 제거됩니다.

SELECT prereq FROM test WHERE prereq IS NOT NULL;

select IFNULL(`prereq`,'') as ColumnName FROM test

이 쿼리는 "prereq"값을 선택하고 값 중 하나가 null이면 원하는대로 빈 문자열을 표시하므로 모든 값을 표시하지만 NULL 값은 공백으로 표시됩니다.


데이터베이스의 필수 필드가 아닌 필드에 null (기본값은 NULL)이 있습니다. 웹 페이지에 "null"값이 표시되지는 않습니다. 그러나 웹 페이지 입력 양식을 통해 데이터를 생성 할 때 "null"값이 적용됩니다. 이는 JavaScript가 null을 취하고 AJAX 및 jQuery를 통해 데이터를 제출할 때 "null"문자열로 변환했기 때문입니다. 단순히 위의 작업을 수행하는 것은 실제 문제에 대한 반창고 일 뿐이므로 이것이 기본 문제가 아닌지 확인하십시오. 또한 위의 솔루션 IFNULL (...)을 이중 측정 값으로 구현했습니다. 감사.


UPDATE your_table set your_field="" where your_field is null

참고 URL : https://stackoverflow.com/questions/9560723/mysql-query-replace-null-with-empty-string-in-select

반응형