簡體   English   中英

如何獲取行數據MySql的max(id)

[英]How to get max(id) of row data MySql

我想獲得行數據的最大ID。 在我的表中,第一列是id然后是firstname等。這是我用來獲取行數據的max(id)的sql命令。

<?PHP  $maxid=$this->db->query("SELECT MAX(id) FROM `emplyee_personal_details`");
                print_r( $maxid) ;?>

但它打印出一堆數據,因為它是一個數組。 但是在數據插入和更新之前,我只需要行數據的maximam id進行驗證。

如何獲得maxid。 我使用codeigniter框架。

嘗試這個:

$maxid = $this->db->query('SELECT MAX(id) AS `maxid` FROM `emplyee_personal_details`')->row()->maxid;

UPDATE

即使您的表為空(這與上面的示例不同),這也會有效:

$maxid = 0;
$row = $this->db->query('SELECT MAX(id) AS `maxid` FROM `emplyee_personal_details`')->row();
if ($row) {
    $maxid = $row->maxid; 
}

使用像“SELECT MAX(id)...”這樣的原始查詢的問題是它不是抽象的,可能不適用於每個SQL引擎。 我認為這樣做的主動記錄方式是這樣的:

$this->db->select_max('id');
$query = $this->db->get('emplyee_personal_details');
// Produces: SELECT MAX(id) as age FROM emplyee_personal_details

請參閱: http//ellislab.com/codeigniter/user-guide/database/active_record.html

SELECT id FROM table ORDER BY id DESC LIMIT 1

這將獲得最高的id值,當我讀到它時,“它打印出一堆數據,因為它是一個數組”我感覺到你真正想要的是該數組的一部分。 數據庫查詢始終返回復雜的結構,如數組或對象。 因此,如果您只想要標量值(數字作為整數),您可能會使用以下內容:

$maxid = (int)$maxid['id'];

或者像這樣(如果你有一個對象):

$maxid = (int)$maxid->id;

HTH,〜雷

public function getMaxCategoryId() {
    $query = $this->db->query("SELECT category_id+1 AS maxid FROM " . DB_PREFIX . "category ORDER BY category_id DESC LIMIT 1");
    return $query->row['maxid'];
}

錯誤未定義索引maxid

<?php`$qry = "select max(ID)+1 As ID from records";`
$result = $con->query($qry);
$row = $result->fetch_assoc();`echo "New ID To Enter = ".$row["ID"];?>

連接后只需編寫此代碼即可

試試這個,希望它有所幫助,

return $this->db->select_max('id')
                        ->get('your_table_name')
                        ->row()->id;

暫無
暫無

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

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