[英]mysql query count with out using group by, distinct or using php count
[英]mysql Count Distinct and get result using php
我有這樣的 mysql 查詢:
$topicreplycount = mysql_query('SELECT COUNT(DISTINCT post_msg_id) FROM phpbb_attachments WHERE topic_id = '.$row['topic_id'].' AND post_msg_id < '.$row['post_msg_id']);
並希望使用這樣的方法得到結果:
$topicreplycount = mysql_result($topicreplycount);
所以假設表中有 4 個這樣的 post_msg_id:
2956 2957 2957 2958
並且當前的 $row['post_msg_id'] 是 2958,有 3 個 post_msg_ids 比我比較的要少,只有 2 個不同的 post_msg_ids 因為其中兩個是相同的,我希望“2”是回來
但它似乎不起作用,我這樣做正確嗎? 使用此方法,我根本沒有在 $topicreplycount 變量中返回任何內容
我很確定 usign mysql_result($topicreplycount) 一定是錯誤的,但不知道該用什么代替
試試這個:
$sql = mysql_query('SELECT COUNT(DISTINCT post_msg_id) AS num_topics FROM phpbb_attachments WHERE topic_id = '.$row['topic_id'].' AND post_msg_id < '.$row['post_msg_id']);
$result = mysql_result($sql);
$row = mysql_fetch_array($result) or die(mysql_error());
echo $row['num_topics'];
使用mysql_result你需要至少指定行號
$topicreplycount = mysql_result($topicreplycount,0);
應該管用。 由於您使用了 COUNT() function,因此只會返回一個結果,這沒問題。
但是,建議不要使用 mysql_ 系列函數。 它們實際上已被棄用(不是官方的,但即使是 PHP 文檔也建議不要使用它們)。 你應該切換到 mysqli_ 或者,也許更好,PDO。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.