mysql查询中带逗号,查询结果的问题。

CREATETABLE`MC_Member`(`ID`bigint(20)NOTNULL,`Department`bigint(20)DEFAULT'0'COMMENT'... CREATE TABLE `MC_Member` (`ID` bigint(20) NOT NULL ,`Department` bigint(20) DEFAULT '0' COMMENT '部门id');
有数据,1 1 ; 2 1 ; 3 1 ; 4 2 ; 5 2 ; 6 2
这时查询select * from MC_Member where Department = '1,2' ;为什么能查出前三条数据?不是应该查询结果为空吗? 如果想查所有,我知道用 where Department in ( 1,2);才对。。。。请高手指点谢谢。
展开
 我来答
distancelife
2016-12-05 · TA获得超过228个赞
知道小有建树答主
回答量:139
采纳率:40%
帮助的人:32.6万
展开全部
其实啊,你不仅写'1,2'会查出三条数据,就算你写'1ncdsln'或者'1ncskl12397na'之类的也会查出三条,就是Department 等于1的那三条,因为Department是bigint类型,但是你查的时候写的是字符串,这时候mysql就会去字符串前面的数字部分来查询,'312你打开所老'就会截取312这样,因为你的'1,2'不是bigint类型,所以会截取前面的数字,即1来查
lzs丶灬
2016-12-05 · TA获得超过632个赞
知道小有建树答主
回答量:881
采纳率:100%
帮助的人:517万
展开全部
这应该是和c一样的吧
它把 '1,2'转换成你需要的bigint
然后转换的逗号它认为是结束符,然后就 '1,2' 就是转换成了1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式