当我运行查询时,例如:
“SELECT * FROM program_detaljer,其中program_ref_id ='a'”
我得到的结果是program_ref_id = 0。
为什么会发生这种情况,当program_ref_id列应该是int(11)?
答案 0 :(得分:1)
您应该阅读types conversion in mysql
在比较之前,mysql尝试将字符串('a')转换为数字('0')。
mysql> SELECT 0='a';
+-------+
| 0='a' |
+-------+
| 1 |
+-------+
1 row in set, 1 warning (0.00 sec)
您可以在查询前检查值。或者将=
替换为LIKE
:)。 (但最好在之前检查值类型。)
mysql> SELECT 0 LIKE 'a';
+------------+
| 0 LIKE 'a' |
+------------+
| 0 |
+------------+
1 row in set (0.00 sec)