簡體   English   中英

SQL SELECT MAX(編號)

[英]SQL SELECT MAX(Id)

我嘗試對SQL數據庫的最后7個條目進行繪制。 因此,我嘗試選擇最大(或最后輸入的)ID號,但是它不起作用。

我的桌子:

Id   | id_time | temp   | RH
2700 | 2706    | 24.187 | 63.0999984741211
2701 | 2707    | 24.25  | 63
2702 | 2708    | 26.562 | 99.9000015258789
2703 | 2709    | 25     | 50.456
2704 | 2710    | 28.2   | 64.48
2705 | 2711    | 21.541 | 78.45876
2706 | 2712    | 18.567 | 55.787455465
2707 | 2713    | 23.25  | 58.54564
2708 | 2714    | 26.5   | 49.9000015258789
2709 | 2715    | 25     | 50.456
2710 | 2716    | 28.2   | 64.48
2711 | 2717    | 21.541 | 78.45876
2712 | 2718    | 18.567 | 55.787455465
2713 | 2719    | 23.25  | 58.54564
2714 | 2720    | 26.5   | 49.9000015258789

我用來制作表格的python代碼:

with con:
cur = con.cursor()

cur.execute("DROP TABLE IF EXISTS tijd")
cur.execute("CREATE TABLE tijd(Id INT PRIMARY KEY AUTO_INCREMENT, \
             jaar VARCHAR(25), \
             maand VARCHAR(25), \
             dag VARCHAR(25), \
             uur VARCHAR(25), \
             minuut VARCHAR(25))")
cur.execute("DROP TABLE IF EXISTS data")
cur.execute("CREATE TABLE data(Id INT PRIMARY KEY AUTO_INCREMENT, \
             id_tijd VARCHAR(25), \
             temp VARCHAR(25), \
             RH VARCHAR(25))")

我用來從數據庫中選擇數據的php代碼:

        <?php
       $dbhost = 'localhost';
       $dbuser = 'testuser1';
       $dbpass = 'loes';

       $conn1 = mysql_connect($dbhost, $dbuser, $dbpass);

       if(! $conn1 ) {
          die('Could not connect: ' . mysql_error());
       }


       $sql1 ='SELECT MAX(Id) FROM data';
       mysql_select_db('huygendb');
       $retval1 = mysql_query( $sql1, $conn1 );

       if(! $retval1 ) {
          die('Could not get data: ' . mysql_error());
       }

       $max1 = mysql_query($sql1) or die ("no query");
       echo "{$max1} <br>";
       if ($max1-7 > 0){
        $max = $max1 -7;}
       else{
        $max = 0;}
       echo "{$max} <br>";

       mysql_close($conn1);
       ?>

代碼的結果是:

Resource id #3
0

可能還有某個記錄的Id = 3,所以我猜我的Id是字符串(因為'3'比'2714'高),但是我真的以為我將它們設為整數了嗎? 如何修復php代碼以執行我想要的操作?

首先在這里檢查php文檔。 mysql_query返回的資源不是對象或數組。 要從數據庫檢查結果集,您需要像這樣循環遍歷

while ($row = mysql_fetch_assoc($max1)) {
echo $row['Id'];
}

我假設您正在尋找sql查詢,以下查詢將按列名降序排列並返回7行

SELECT * FROM table_name ORDER BY column_name DESC LIMIT 7;

mysql_query(); 返回資源,而不是結果集。 您需要從中獲取數據:

   $res = mysql_query($sql1) or die ("no query");
   $max1 = mysql_fetch_array($res);
   var_dump($max1);

然后:不要使用mysql_ *函數。 他們已棄用。

暫無
暫無

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

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