私は最近、(パフォーマンスを最適化するために)1つのクエリに2つのクエリを組み合わせました...カウントを調べるための1つのクエリと、結果のためのもう1つのクエリは、ループを続行する前にそれらが実際の結果であることを確認することです。MySQLはwhileループ内で1つの結果を表示します...しかし、実際には2つの結果が表示されますか?
HERESにPHPコード:
<?php
$query = 'SELECT id, title, COUNT(id) FROM submissions ORDER BY sub_time DESC LIMIT 50';
$result = mysql_query($query);
$count = mysql_result($result, 0, 2);
mysql_data_seek($result, 0); //mysql_result resets the internal pointer...
if ($count > 0) {
$i = 0;
while ($output = mysql_fetch_assoc($result)) {
++$i;
//etc..
}
}
?>
問題は、それが今、1つの結果を返すのですか? - 実際に2つの結果が出てきたとき(PHPMyAdminを介してチェックしたところで、次のコードを実行しています - 下記を参照)、COUNT(id)が最初の結果クエリと組み合わされているので問題を絞りました。そのような振る舞いをする。
ので、私は次の操作を実行した場合:
<?php
$query = 'SELECT id, title FROM submissions ORDER BY sub_time DESC LIMIT 50';
$result = mysql_query($query);
$i = 0;
while ($output = mysql_fetch_assoc($result)) {
++$i;
//etc..
}
?>
それは2件の結果を返します...
だから私の質問はどのように私はこの問題を解決するが、私は後だものを達成んでしょうか?
結果セットの値に依存して結果がいくつあるかを示し、結果セットにゼロレコードがある場合はどうなりますか?*今度は2つの異なるケースを処理する必要があります。 –