簡體   English   中英

mysql Count Distinct 並使用 php 得到結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM