1
tsunli 2015-09-11 10:51:20 +08:00
id != 1 ?
|
2
altchen 2015-09-11 10:57:29 +08:00
id 是 bigint 的吧?为什么要 where 字符类型?应该在程序用正确的类型
|
3
996635 2015-09-11 11:08:18 +08:00
要看你的 id 的 类型, 如果不是 varchar 就会有问题
|
4
caoyue 2015-09-11 11:30:57 +08:00
|
5
anoymoux 2015-09-11 12:04:53 +08:00
id 是 int 型,'1-1' 被转成了 1
把 id 改成 varchar |
6
zonghua 2015-09-11 12:39:59 +08:00 via iPhone
1-1 是字符
|
7
SoloCompany 2015-09-11 13:51:31 +08:00
有毛病啊
‘ 1-1 ’ 强制类型转换成 int ,并且是尽量容错的,就是遇到非数字就终止(减号),结果就是 1 所以你的条件是 id=1 |
8
heat OP @caoyue
@anoymoux @SoloCompany 对的, ID 是自增字段,所以是 BIGINT 类型,但是当输入 1-2 , 3-10 这种东西的时候。我希望结果并不等于 ID 1 和 3 。有办法让 MYSQL 强制数据类型么 |
9
SoloCompany 2015-09-12 00:37:33 +08:00
@heat 你这是玩 hi 了吧,要是自己用,去掉引号就是了,要是在线上用,你不怕被 SQL 注入玩坏的话可以尽管试试,没有安全意识的话,加引号一样要被玩坏。正确的做法,自己做个四则运算解释器或者找现成的,计算好后再做查询
|