我正在使用MySQL查询根据某些条件计算记录数。但每次来自多个系统的多个用户使用网站/数据库。计数结果差别很大。
我试图找到很多,但无法解决问题。我正在附加屏幕截图。请帮忙!
屏幕截图为https://drive.google.com/file/d/0B4kI3aImsSLmaGN3cXo1Rk1saDg/view?usp=sharing
表格结构:
CREATE TABLE IF NOT EXISTS `rap_partmpuser` (
`par_tmp_track` int(11) NOT NULL,
`par_tmp_exam` int(11) NOT NULL,
`par_tmp_user` int(11) NOT NULL,
`par_tmp_status` varchar(100) NOT NULL,
`par_tmp_sdate` date NOT NULL,
`par_tmp_edate` date NOT NULL,
`par_tmp_adate` date NOT NULL,
`par_tmp_tdate` date NOT NULL,
`par_terdate` date NOT NULL,
`par_tmp_score` int(11) NOT NULL,
`par_tmp_tques` int(11) NOT NULL,
`par_tmp_uopt1` varchar(250) NOT NULL,
`par_tmp_uopt2` varchar(250) NOT NULL,
`par_tmp_uopt3` varchar(250) NOT NULL,
`par_tmp_uopt4` varchar(250) NOT NULL,
`par_tmp_uopt5` varchar(250) NOT NULL,
`par_tmp_uopt6` varchar(250) NOT NULL,
`par_tmp_uopt7` varchar(250) NOT NULL,
`par_tmp_uopt8` varchar(250) NOT NULL,
`par_tmp_uopt9` varchar(250) NOT NULL,
`par_tmp_uopt10` varchar(250) NOT NULL,
`par_tmp_uopt11` varchar(250) NOT NULL,
`par_tmp_uopt12` varchar(250) NOT NULL,
`par_tmp_uopt13` varchar(250) NOT NULL,
`par_tmp_uopt14` varchar(250) NOT NULL,
`par_tmp_uopt15` varchar(250) NOT NULL,
`par_tmp_filter` int(11) NOT NULL,
`par_tmp_sfilter` int(11) NOT NULL,
`par_tmp_cpyid` int(11) NOT NULL,
`par_tmp_usrid` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
我的查询是
SELECT count(*)
FROM `rap_partmpuser`
where par_tmp_cpyid='10106' and par_tmp_track='458'
and par_tmp_usrid='771' and par_tmp_status='Active'
有时它给我的结果是46,有时是26,有时是70.正确的结果是70.为什么它有时会有所不同?
答案 0 :(得分:1)
我认为答案很简单。我不确定这是唯一的错误。
SELECT count(*)FROM rap_partmpuser,其中par_tmp_cpyid = 10106和 par_tmp_track = 458 and par_tmp_usrid = 771 and par_tmp_status =' Active';
不要使用单引号'检查par_tmp_cpyid='10106'
之类的整数值。如果您在下面得到正确答案评论,请尝试以上查询。
答案 1 :(得分:0)
$reponse = $bdd->prepare('
SELECT count(*)
FROM rap_partmpuser
where par_tmp_cpyid=10106 and par_tmp_track=458
and par_tmp_usrid=771 and par_tmp_status=\'Active\'');
$reponse->execute();
$donnees = $reponse->fetch();
echo $donnees[0] ;