ฉันกำลังพยายามคำนวณขนาดรวมของข้อมูลเมตาที่จัดเก็บไว้ในตารางโดยใช้ CHAR_LENGTH เพื่อเพิ่มขนาดของฟิลด์ที่เกี่ยวข้องในแต่ละแถวเพื่อให้ได้แนวคิดคร่าวๆ เกี่ยวกับขนาดที่เก็บข้อมูลของชุดผลลัพธ์
ฉันไม่ต้องการขนาดของข้อมูลทั้งหมดในตาราง ต้องการขนาดของชุดผลลัพธ์เท่านั้น
อย่างไรก็ตาม บางฟิลด์ในตารางมีค่าเป็น NULL และทันทีที่ CHAR_LENGTH ถึงหนึ่งในนั้น การคำนวณทั้งหมดจะล้มเหลว เนื่องจาก CHAR_LENGTH ส่งคืนค่า NULL ไม่ใช่ 0
ตัวอย่างเช่น:
SELECT SUM(row_size) as `total` FROM ( SELECT CHAR_LENGTH(`field1`)+CHAR_LENGTH(`field2`)+CHAR_LENGTH(`field3`)+CHAR_LENGTH(`field4`) as `row_size` FROM `meta_data` WHERE `id ` = 1 และ `id2` = 2 ) เป็น tbl1;
สำหรับข้อความค้นหาบางอย่างใช้งานได้และฉันได้รับขนาดเป็นไบต์ แต่สำหรับค่า NULL ใด ๆ ในฟิลด์ใด ๆ ในแถวของผลลัพธ์ฉันไม่ได้รับอะไรเลย
เหตุใด CHAR_LENGTH จึงไม่คืนค่า 0 เป็นค่า NULL
ฉันคิดว่าสิ่งที่ดีที่สุดถัดไปคือการได้รับผลลัพธ์กลับมาและวนซ้ำในโค้ดเพื่อเพิ่มขนาด ฉันหวังว่าจะหลีกเลี่ยงการทำเช่นนั้น แต่มันอาจจะเป็นวิธีเดียว?