Php Mysql查询,其中列\u name=a与列\u name=0相同?
运行查询时,例如: “从program_detaljer中选择*其中program_ref_id='a'” 我从结果中得到的是program_ref_id=0 当program\u ref\u id列应该是int(11)时,为什么会发生这种情况?您应该了解 在比较之前,mysql尝试将字符串('a')转换为数字('0') 您可以在查询之前检查值。或者将Php Mysql查询,其中列\u name=a与列\u name=0相同?,php,mysql,sql,get,Php,Mysql,Sql,Get,运行查询时,例如: “从program_detaljer中选择*其中program_ref_id='a'” 我从结果中得到的是program_ref_id=0 当program\u ref\u id列应该是int(11)时,为什么会发生这种情况?您应该了解 在比较之前,mysql尝试将字符串('a')转换为数字('0') 您可以在查询之前检查值。或者将=替换为类似的:)。(但最好先检查值类型。) 所以program_ref_id列是一个INT,您正在将它与查询中的一个字符进行比较?我错误地将它与
=
替换为类似的:)。(但最好先检查值类型。)
所以program_ref_id列是一个INT,您正在将它与查询中的一个字符进行比较?我错误地将它与一个字符进行了比较,在我的站点上得到了一个错误。用一份事先准备好的声明解决了这个问题,并好奇为什么会发生这种情况
mysql> SELECT 0='a';
+-------+
| 0='a' |
+-------+
| 1 |
+-------+
1 row in set, 1 warning (0.00 sec)
mysql> SELECT 0 LIKE 'a';
+------------+
| 0 LIKE 'a' |
+------------+
| 0 |
+------------+
1 row in set (0.00 sec)