我试图防止mysql将字符串转换为where子句中的int。
以下查询返回订单的正确行
SELECT delivery_name FROM orders WHERE orders_id = '985225'
以下查询还返回与将字符串强制转换为int相同的行,但我想完全阻止它返回该行(即,不强制转换为int的字符串并有效地说,这不能准确地被强制转换为int,因此请勿)。
SELECT delivery_name FROM orders WHERE orders_id = '985225a'
我希望这是有道理的,任何帮助将不胜感激!
您应该可以完全避免这种情况,但是如果您想要一种解决方法,可以在字符串的前面连接一个字符,例如:
SELECT delivery_name FROM orders WHERE CONCAT('a',orders_id) = CONCAT('a','985225a')