selectidfrommemberswhereusername='zzdx2009'orid='zzdx2009';insertintoapply(uid,win1,win2,gs,lx1,lx2,starttime,state)value((selectidfrommemberswhereusername='zzdx2009'orid...
select id from members where username='zzdx2009' or id='zzdx2009';
insert into apply (uid,win1,win2,gs,lx1,lx2,starttime,state) value ((select id from members where username='zzdx2009' or id='zzdx2009'),80,80,'adsasd','353465554','1234342',now(),1)
第一句正常执行,但第二句提示:1292 - Truncated incorrect DOUBLE value: 'zzdx2009'
求解
members表:
CREATE TABLE `members` (
`id` int(10) unsigned NOT NULL auto_increment,
`username` varchar(20) NOT NULL,
`password` char(32) NOT NULL,
`lx` int(11) NOT NULL,
`name` varchar(20) NOT NULL,
`sex` char(1) NOT NULL,
`phone` char(11) NOT NULL,
`phonev` char(1) default NULL,
`email` varchar(50) NOT NULL,
`emailev` char(1) default NULL,
`regtime` datetime NOT NULL,
`regip` varchar(255) NOT NULL,
`jifen` double(11,2) NOT NULL default '0.00',
`je` double(11,2) NOT NULL default '0.00',
`viptime` datetime default NULL,
`tj` int(11) default NULL,
PRIMARY KEY (`id`,`username`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=gb2312;
apply表:
CREATE TABLE `apply` (
`id` int(10) unsigned NOT NULL auto_increment,
`uid` int(11) NOT NULL,
`win1` double(11,2) NOT NULL,
`win2` double(11,2) NOT NULL,
`gs` varchar(255) NOT NULL,
`lx1` varchar(255) NOT NULL,
`lx2` varchar(255) NOT NULL,
`starttime` datetime NOT NULL,
`state` int(255) NOT NULL,
`stoptime` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=gb2312;
用concat可以解决,还有其他方法或者存在什么原因导致执行失败
展开