$search_sql = "select category_name from category where category_id='2Dresses'";
category_id
是int
类型&有1,2,3等值
但是使用' 2Dresses
'等值,它会与category_id='2'
匹配。
为什么以及如何解决这个问题?任何人吗?
答案 0 :(得分:0)
在将String值与int列进行比较时,MySql自动截断数字后跟的值。在您的示例中(2Dresses),mysql截断后跟2的值。 mysql会将您的查询视为
"select category_name from category where category_id=2";
如果字符串是以字母或非数字值开头,那肯定不会起作用 例如
"select category_name from category where category_id='d2Dresses'";
mysql截断整个字符串值。所以它会将上面的查询视为
"select category_name from category where category_id=''";
它将返回Emptyset ...