การใช้ RIGHT() กับ NOT IN
รวม RIGHT(str, 3) ดึง 3 หลักสุดท้าย และ NOT IN (...) เพื่อตัดค่าที่ไม่ต้องการ
ตัวอย่าง
mysql> create table DemoTable(Value int);
Query OK, 0 rows affected (0.71 sec)
mysql> insert into DemoTable values(1234);
mysql> insert into DemoTable values(2345);
mysql> insert into DemoTable values(7896);
mysql> insert into DemoTable values(4321);
ตัดทิ้งเลขท้าย 234 และ 321
mysql> select * from DemoTable where right(Value, 3) NOT IN ('234', '321');
ผลลัพธ์ (เหลือ 2345 และ 7896):
+-------+
| Value |
+-------+
| 2345 |
| 7896 |
+-------+
คำอธิบาย
RIGHT(1234, 3) = '234'-> ตัดออก (อยู่ใน NOT IN)RIGHT(2345, 3) = '345'-> คงไว้RIGHT(7896, 3) = '896'-> คงไว้RIGHT(4321, 3) = '321'-> ตัดออก
ข้อควรระวัง: ชนิดข้อมูล
-- ถ้า Value เป็น INT ต้อง CAST ก่อน
WHERE RIGHT(CAST(Value AS CHAR), 3) NOT IN ('234', '321')
สรุป
ใช้ WHERE RIGHT(CAST(col AS CHAR), 3) NOT IN ('xxx', 'yyy') เพื่อตัดแถวที่มีเลขท้าย 3 หลักตรงกับรายการ запрещенных