1

こんにちは私は PHP ページネーション システムを持っています。私がやろうとしているのは、Distinct を使用して一意の値のみを返すことです。何が起こるかというと、ページにはいくつのページが必要かが示されますが、結果は得られません。

私のコードはここにあります

$query = "SELECT DISTINCT ip_address, 
                 COUNT(*) as num 
          FROM $tableName  
          WHERE hostname 
          LIKE 'mail%' AND type='6'";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];

$stages = 3;
$page = mysql_escape_string($_GET['page']);

if($page){
    $start = ($page - 1) * $limit; 
}else{
    $start = 0; 
}   

// Get page data
$query1 = "SELECT DISTINCT ip_address, 
                  hostname 
            FROM masterip_details  
                WHERE hostname 
            LIKE 'mail%' AND type='6' 
                LIMIT $start, $limit";
$result = mysql_query($query1);
4

2 に答える 2

0

ip_addressフィールドにインデックスがない場合は、SELECT COUNT(DISTINCT ip_address) as num. インデックスがある場合、次のようにすることもできます。

SELECT COUNT(type) AS num FROM tbl WHERE hostname LIKE 'mail%' and type = 6 GROUP BY ip_address;

インデックスでグループ化する場合、DISTINCTは と同等だからGROUP BYです。詳細はこちらこちら

ただし、この質問に答える本当の理由は、非推奨の拡張機能を使用しないください。、またはより一般使用されていると思われる PDOのいずれかを使用してください。mysql_*mysqli_*i

于 2013-05-25T10:28:11.640 に答える