ในกรณีของโหมดเข้มงวดของ SQL ที่เปิดใช้งาน การลบระหว่างค่าจำนวนเต็มซึ่งค่าใดค่าหนึ่งเป็นประเภท UNSIGNED จะสร้างผลลัพธ์ที่ไม่ได้ลงนามโดยค่าเริ่มต้น แต่ MySQL สร้างข้อผิดพลาดหากผลลัพธ์เป็นค่าลบ สามารถสังเกตได้จากตัวอย่างต่อไปนี้ −
mysql> SET sql_mode = ''; Query OK, 0 rows affected (0.00 sec) mysql> Select CAST(0 AS UNSIGNED) -1; ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '(cast(0 as unsigned) - 1)'
ข้อผิดพลาดหลังจากข้อความค้นหาด้านบนแสดงว่าเป็นการล้นหลังจากนิพจน์เลขคณิต
ขณะนี้ สามารถจัดการได้ด้วยความช่วยเหลือของการเปิดใช้งานโหมด SQL NO_UNSIGNED_SUBTRACTION หลังจากเปิดใช้งานโหมดนี้ ผลลัพธ์จะเป็น -1 แทนที่จะเป็นข้อผิดพลาด
mysql> Set sql_mode = 'NO_UNSIGNED_SUBTRACTION'; Query OK, 0 rows affected (0.00 sec) mysql> Select CAST(0 AS UNSIGNED) -1; +------------------------+ | CAST(0 AS UNSIGNED) -1 | +------------------------+ | -1 | +------------------------+ 1 row in set (0.00 sec)