DELETE FROM `zt_comment` WHERE `cid` IN(“37,36,35,34,33,32,31,30,29,28,27,26”)
给这么句话你以为会删除CID为37,36,35,34,33,32,31,30,29,28,27,26的记录?你错了,它只删除了CID为37的记录。
可能本人是小白吧,这句话都看不懂
来个高手给解释一下
给这么句话你以为会删除CID为37,36,35,34,33,32,31,30,29,28,27,26的记录?你错了,它只删除了CID为37的记录。
可能本人是小白吧,这句话都看不懂
来个高手给解释一下
解决方案
20
“37,36,35,34,33,32,31,30,29,28,27,26”
这仅仅是一个字符串。 36 != “37,36,35,34,33,32,31,30,29,28,27,26”
把单引号去掉再试。
这仅仅是一个字符串。 36 != “37,36,35,34,33,32,31,30,29,28,27,26”
把单引号去掉再试。
5
很明显的低级错误 “” 里面的表示是一个值,而不是一个值列表
能够出来一条数据,说明你的cid是数字类型,所以导致了字符串的数据类型转换,转换的结果是37,所以37 的记录满足条件
你可以本人测试一下
select cast(“37,36,35,34,33,32,31,30,29,28,27,26” as signed);
能够出来一条数据,说明你的cid是数字类型,所以导致了字符串的数据类型转换,转换的结果是37,所以37 的记录满足条件
你可以本人测试一下
select cast(“37,36,35,34,33,32,31,30,29,28,27,26” as signed);
5
mysql 的执行计划显示(explain)很粗糙,不知道有没有更详细的
假如是在 sql server 中显示执行执行,可以很容易看到数据类型转换操作
假如是在 sql server 中显示执行执行,可以很容易看到数据类型转换操作
5
太有理了,这个仅是字符串而已。你的cid是什么类型,假如是整数,in后面的内容为什么要加单引号呢?低级错误,程序是死的,不会骗人!
5
是的,去掉单引号