Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ความหมายของ SET + 0 ใน MySQL

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 (หลายค่าพร้อมกัน)