私はmysqlからいくつかのデータを取得し、一致の発生をカウントしています(一見はと同等ですWHERE foo='bar')。ただし、PHPのデータをループするため、私のカウントはmysqlのカウントよりもはるかに少なくなります。
MYSQL> SELECT COUNT(foo) FROM database.table WHERE foo='bar';
# PHP
while ($response = mysql_fetch_assoc($surveydata)){
if ($response==='bar') {
$bar++;
}
}
データには1つ以上のが含まれている可能性がある&ため、一致させたいのは一致させ、一致させたくbarないのbar & foobarです。mysqlはカウントbarしていると思いますbar & foobarが、phpはカウントしているだけで、カウントbarしていませんbar & foobar。PHPが返さ1210れ、mysqlが返さ1783れるので、手動でカウントして誰が正しいかを確認するのが正確に実用的です…</ p>
私はグーグルで検索しましたが、「mysql完全一致」または「mysql完全一致」x、xに関連するものが何も表示されなかったことに驚きました
編集
これが実際のSQLです
SELECT COUNT(`race`) FROM `database`.`table` WHERE `completion status`='complete';
そして実際のphp
mysql_query("SELECT `race`,`etcetera` FROM `database`.`table` WHERE `completion status`='complete';");
$demographics=array(
"race"=>array(
"White"=>array('consented'=>0,'partial'=>0,'completed'=>0),
"Black"=>array('consented'=>0,'partial'=>0,'completed'=>0),
"Hispanic"=>array('consented'=>0,'partial'=>0,'completed'=>0),
"Asian"=>array('consented'=>0,'partial'=>0,'completed'=>0),
"Pacific Islander"=>array('consented'=>0,'partial'=>0,'completed'=>0),
"Multiracial"=>array('consented'=>0,'partial'=>0,'completed'=>0),
"Other"=>array('consented'=>0,'partial'=>0,'completed'=>0)
)
//more
);
while ($dbrecord = mysql_fetch_assoc($surveydata)) {
foreach ( $dbrecord as $dbfield=>$dbcellval ) {
foreach ( $demographics as $demographic=>&$options ) {
foreach ( $options as $option=>&$counter ) {
if ( $option==="Multiracial" && strpos($dbcellval,'&') >0 && strpos($dbcellval,'&')!==false ) {
if ($dbrecord['consent']==="1"){
$demographics["race"]["Multiracial"]['consented']++;
if ($dbrecord['completion status']==="partial") {
$demographics["race"]["Multiracial"]['partial']++;
} // if
else if ($dbrecord['completion status']==="complete") {
$demographics["race"]["Multiracial"]['completed']++;
} // else if
} // if
}
else if ($option===$dbcellval){
if ($dbrecord['consent']==="1"){
$counter['consented']++;
if ($dbrecord['completion status']==="partial") {
$counter['partial']++;
} // if
else if ($dbrecord['completion status']==="complete") {
$counter['completed']++;
} // else if
} // if
} // else if $option==$item
} // foreach $options
} // foreach $demographics
} // foreach $dbrecord
} // while
からのデータはSELECT race FROM database.table次のようになります。
White & Black
White
White & Asian
White & Asian & Black
Asian
Asian & Black
// etc