php
  • mysql
  • 2017-06-20 41 views 0 likes 
    0

    在我的數據庫中的最低值有5個值:50,75,95,125和200。當我查詢的最小值,我得到125,但我應該得到50想從SQL

    這裏我的代碼:

    $result_upTICKET = mysql_query("SELECT ID, EID, COMMISSION, MIN(PRICE) as PRICE FROM `tickets` WHERE EID='$EID_UPcoMing' AND STATUS='1'"); 
    
    while($row_upTICKET = mysql_fetch_array($result_upTICKET)) 
    { 
        $PRICE_upTICKET= $row_upTICKET['PRICE']; 
        $COMMISSION_upTICKET= $row_upTICKET['COMMISSION']; 
    } 
    

    我得到了什麼問題?

    +0

    你應該寫你的min()作爲where條件 –

    +0

    .......極限n:D – DaAmidza

    +0

    ***請[停止使用'mysql_ *'函數](http://stackoverflow.com/questions /12859942/why-shouldnt-i-use-mysql-functions-in-php).*** [這些擴展程序](http://php.net/manual/en/migration70.removed-exts-sapis.php)已在PHP 7中刪除。瞭解[準備](http://en.wikipedia.org/wiki/Prepared_statement)[PDO]的聲明(http://php.net/manual/en/pdo.prepared-statements .php)和[MySQLi](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)並考慮使用PDO,[這真的很簡單](http://jayblanchard.net/ demystifying_php_pdo.html)。 –

    回答

    1

    試試這個

    SELECT ID, EID, COMMISSION, PRICE FROM `tickets` WHERE EID='$EID_UPcoMing' AND STATUS='1' ORDER BY PRICE ASC LIMIT 1 
    
    +1

    改變教學/宣傳草率和危險的編碼習慣。如果您發佈的答案沒有準備好的陳述[您可能想在發佈之前考慮這一點](http://meta.stackoverflow.com/q/344703/)。另外[一個更有價值的答案來自於顯示OP的正確方法](https://meta.stackoverflow.com/a/290789/1011527)。 –

    +0

    感謝您的回覆,但它再次顯示125值,即使我嘗試按DESC順序,但它不能顯示50它顯示95. – Hassan

    +0

    你確定你的列數據類型是整數? –

    0

    您使用where條件也。它先過濾行然後apply/Selectcolumnsmin。我相信,你的WHERE條件拔出一行,價格50,這就是爲什麼分鐘即將到來,而不是125 50

    0

    請執行查詢一樣,我們需要轉換成整數

    的mysql_query(「SELECT ID, EID,COM​​MISSION,MIN(CONVERT(價格,簽名INTEGER))作爲價格從tickets WHERE EID ='$ EID_UPcoMing'AND STATUS ='1'「);

    相關問題