วิธีตรวจสอบว่าฟิลด์ว่างหรือว่างใน MySQL?


91

ฉันกำลังพยายามหาวิธีตรวจสอบว่าฟิลด์ว่างNULLหรือไม่ ฉันมีสิ่งนี้:

SELECT IFNULL(field1, 'empty') as field1 from tablename

ฉันต้องการตรวจสอบเพิ่มเติมfield1 != ""บางอย่างเช่น:

SELECT IFNULL(field1, 'empty') OR field1 != ""  as field1 from tablename

มีความคิดอย่างไรที่จะทำสิ่งนี้ให้สำเร็จ?

คำตอบ:


201

ใช้อย่างใดอย่างหนึ่ง

SELECT IF(field1 IS NULL or field1 = '', 'empty', field1) as field1 
from tablename

หรือ

SELECT case when field1 IS NULL or field1 = ''
            then 'empty'
            else field1
       end as field1 
from tablename

ถ้าคุณเพียงต้องการที่จะตรวจสอบnullและไม่ได้สำหรับสตริงว่างแล้วคุณยังสามารถใช้หรือifnull() coalesce(field1, 'empty')แต่ไม่เหมาะสำหรับสตริงว่าง


14

หรือคุณสามารถใช้CASEสำหรับสิ่งเดียวกัน:

SELECT CASE WHEN field1 IS NULL OR field1 = '' 
       THEN 'empty' 
       ELSE field1 END AS field1
FROM tablename.



6

คุณสามารถสร้างฟังก์ชันเพื่อให้ง่ายขึ้น

create function IFEMPTY(s text, defaultValue text)
returns text deterministic
return if(s is null or s = '', defaultValue, s);

ใช้:

SELECT IFEMPTY(field1, 'empty') as field1 
from tablename

0
SELECT * FROM ( 
    SELECT  2 AS RTYPE,V.ID AS VTYPE, DATE_FORMAT(ENTDT, ''%d-%m-%Y'')  AS ENTDT,V.NAME AS VOUCHERTYPE,VOUCHERNO,ROUND(IF((DR_CR)>0,(DR_CR),0),0) AS DR ,ROUND(IF((DR_CR)<0,(DR_CR)*-1,0),2) AS CR ,ROUND((dr_cr),2) AS BALAMT, IF(d.narr IS NULL OR d.narr='''',t.narration,d.narr) AS NARRATION 
    FROM trans_m AS t JOIN trans_dtl AS d ON(t.ID=d.TRANSID)
    JOIN acc_head L ON(D.ACC_ID=L.ID) 
    JOIN VOUCHERTYPE_M AS V ON(T.VOUCHERTYPE=V.ID)  
    WHERE T.CMPID=',COMPANYID,' AND  d.ACC_ID=',LEDGERID ,' AND t.entdt>=''',FROMDATE ,''' AND t.entdt<=''',TODATE ,''' ',VTYPE,'
    ORDER BY CAST(ENTDT AS DATE)) AS ta

ที่นี่ทุกคนสามารถหาวิธีแก้ปัญหาของ qry ได้มันเป็นการ
วิ่ง

-1

หากคุณต้องการตรวจสอบใน PHP คุณควรทำสิ่งต่อไปนี้:

$query_s =mysql_query("SELECT YOURROWNAME from `YOURTABLENAME` where name = $name");
$ertom=mysql_fetch_array($query_s);
if ('' !== $ertom['YOURROWNAME']) {
  //do your action
  echo "It was filled";
} else { 
  echo "it was empty!";
}

3
$isnull = (empty($ertom['YOUROWNAME']) ? empty : not empty); สั้นกว่าหน่อย ..
Robert de Jonge
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.