簡體   English   中英

SELECT DISTINCT返回重復項

[英]SELECT DISTINCT returning duplicates

當我使用以下代碼時,我的mysql代碼返回重復值:

首先,這是我的代碼:

$customer = htmlspecialchars($_GET['customer']);

$STH = $DBH->query( "SELECT DISTINCT customer FROM table WHERE customer LIKE
    '$customer%' LIMIT 4" );
$STH->setFetchMode(PDO::FETCH_ASSOC);

while( $row = $STH->fetch() ){
    $customer_name = $row['customer'];
    $list .= "<p>" .$customer_name. "</p>";

    echo $list;
}

我的SELECT語句有問題嗎?

我讀到,當數據條目中的細微差別(例如空格等)存在差異時,可以返回重復的值。

嘗試這個。

$customer = htmlspecialchars($_GET['customer']);

$STH = $DBH->query( "SELECT DISTINCT customer FROM table WHERE customer LIKE
    '$customer%' LIMIT 4" );
$STH->setFetchMode(PDO::FETCH_ASSOC);

while( $row = $STH->fetch() ){
    $customer_name = $row['customer'];
    $list .= "<p>" .$customer_name. "</p>";
}
echo $list;

您是每個周期中的回顯列表。 我認為是這種情況。

您每次迭代都將附加到$list ,然后每次都回顯整個事物。 因此,如果查詢返回Person1,Person2和Person3,則將是您的輸出:

Person1    # End of loop iteration 1
Person1
Person2    # End of loop iteration 2
Person1
Person2
Person3    # End of loop iteration 3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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