【问题标题】:mysql "select" issue while trying to retrieve smallest value [duplicate]mysql在尝试检索最小值时出现“选择”问题[重复]
【发布时间】:2017-11-01 18:23:44
【问题描述】:

我的数据库中有几行以下数据:

 name    price
 iphone  1000
 iphone  888
 iphone  1010

我正在尝试以最便宜的价格购买 iphone,但我的脚本返回的是最昂贵的

class getdbdata {

    function cheapestprice($nameofproduct) {

        $servername = "localhost";
        $username = "username";
        $password = "password";
        $dbname = "mobilephones";
        $pdo = new PDO("mysql:host=$servername;dbname=$dbname", $username, 
        $password);
        $sql = ("SELECT name,price  FROM phones where name like 
        '%".$nameofproduct."%' and  price =(SELECT MIN(price) FROM phones)");  
        $stmt = $pdo->prepare($sql);
        $stmt->execute() ;
        $posts= $stmt->fetch() ;
            foreach ($posts as $post ) {
        echo $post;
            }
            var_dump($posts);   
    }

}

$getdbdata = new getdbdata();
$getdbdata->cheapestprice("iphone");

【问题讨论】:

  • 您不需要子选择,但如果您使用它,您还需要添加一个WHERE。相反,您可以使用SELECT name, MIN(price) FROM phones WHERE name like :name GROUP BY name
  • 这与数据库中“价格”列的类型有关...确保它是双精度或浮点数,而不是 varchar。

标签: php mysql


【解决方案1】:

将查询更改为:

SELECT name, Min(price) FROM phones where name like '%".$nameofproduct."%'

【讨论】:

    猜你喜欢
    • 2010-11-15
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    相关资源
    最近更新 更多