MySQL计数每次都会产生不同的结果

时间:2014-10-29 16:34:14

标签: mysql database

我正在使用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.为什么它有时会有所不同?

2 个答案:

答案 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] ;