0

我有一个查询,它从现有的 opencart 网上商店数据库中获取一些数据。

小问题是我使用 DISTINCT 在本地解决的双倍结果。在我在我的 wordpress 网站上使用在线查询之前,它运行良好。结果再次翻倍,无论使用 distinct。

唯一的区别是我在本地使用 mysql() 查询在一个普通的 php 文档中,但是在线我在 wordpress 侧边栏文件中使用了 $wpdb 语句。

数据库是一样的。

当地的:

$preq = "
SELECT DISTINCT
    product.product_id as proid,
    product.image as proimg,
    product_description.name as proname 
FROM
    product, product_description
WHERE
    product_description.product_id = product.product_id
    AND FIND_IN_SET(product.product_id, ( SELECT value FROM setting where `key` = 'featured_product' ) )
";

if($res=mysql_query($preq)) {

while ($rss = mysql_fetch_array($res)) {

echo $rss['proid'];
echo "<br/><br/>";

}


}

在线的:

$mydb= new wpdb(/connection info/);
            $rows = $mydb->get_results(
                "
                SELECT DISTINCT
                product.product_id as proid,
                product.image as proimg,
                product_description.name as proname 
                FROM
                product, product_description
                WHERE
                product_description.product_id = product.product_id
                AND FIND_IN_SET(product.product_id, ( SELECT value FROM setting where `key` = 'featured_product' ) )
                "
            );
            echo "<div id='fp_content'>";
            foreach ($rows as $obj) {
            echo $obj->proid;
            echo '<br/>';
            }
            echo "</div>";

一切正常,除了重复

结果:

Locally:
Values in "value" column: 28,40,42,43,46,47,49

Results:
28

40

42

43

46

47

49

----------------------

Online:
Values in "value" column: 50,51,52

Results:
50
50
51
51
52
52
4

1 回答 1

1

您的查询确实只返回非重复值:

SELECT DISTINCT
     product.product_id as proid,
     product.image as proimg,
     product_description.name as proname 
FROM
     product, product_description
WHERE

但只有您的字段 product.image 或 product_description.name 会有所不同。

于 2013-04-16T13:29:50.763 回答