SET + 0: แปลงค่า SET เป็นตัวเลข
ใน MySQL ชนิดข้อมูล SET เก็บค่าเป็น Bitmask การบวก 0 จะแปลงเป็นค่าตัวเลข
ตัวอย่าง
CREATE TABLE SetZeroDemo (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
TechnicalSkills SET('C', 'Spring Framework/Hibernate', 'Python', 'Django Framework', 'Core Java') NOT NULL
);
INSERT INTO SetZeroDemo(TechnicalSkills) VALUES
('C,Spring Framework/Hibernate,Python,Django Framework,Core Java');
คำสั่ง + 0
SELECT TechnicalSkills + 0 FROM SetZeroDemo;
ผลลัพธ์
+-------------------+ | TechnicalSkills+0 | +-------------------+ | 31 | +-------------------+
การคำนวณ
SET เก็บค่าเป็น Bit Position (เริ่มจาก 0):
C = 2^0 = 1 Spring Framework/Hibernate = 2^1 = 2 Python = 2^2 = 4 Django Framework = 2^3 = 8 Core Java = 2^4 = 16 ------------------------------------- Total = 1+2+4+8+16 = 31
ประโยชน์
- ตรวจสอบค่าที่เก็บได้ง่ายด้วย Bitwise Operation
skills & 4= ตรวจสอบว่ามี Python หรือไม่skills | 32= เพิ่ม Skill ใหม่ (2^5)- เก็บค่าได้มากกว่า ENUM (หลายค่าพร้อมกัน)