Mysql查询匹配,即使它们具有不同的值

时间:2016-05-24 17:29:46

标签: php mysql sql

$search_sql = "select category_name from category where category_id='2Dresses'"; 

category_idint类型&有1,2,3等值 但是使用' 2Dresses'等值,它会与category_id='2'匹配。

为什么以及如何解决这个问题?任何人吗?

1 个答案:

答案 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 ...