簡體   English   中英

如何從Codeigniter中的varchar字段獲取整數值的max()?

[英]How to get max() of integer value from a varchar field in codeigniter?

rf_id  rf_name  
12      12
13      13
14      14
15      15
16      GF
17      BASE

我想從rf_name列中獲取15 每次我應該得到max('rf_name')不允許字符

MySQL查詢下面:

SELECT Max(CAST(rf_name as SIGNED)) as MAX_INT FROM table_name;

在Codeigniter中:

$sql = "SELECT Max(CAST(rf_name as SIGNED)) as MAX_INT FROM table_name"; 
$this->db->query($sql);

首先,確保列rf_name數據類型應為整數/浮點數,而不是varchar / string / text等。

因此,根據列的數據類型,它將不存儲任何字符串值

$maxid = $this->db->query('SELECT MAX(rf_name) AS maxid FROM table')->row()->maxid;

要么

$this->db->select_max('rf_name');
$query = $this->db->get('table');

如果同時具有字符串和數字值,則必須執行以下步驟

  1. 獲取列的所有值

     $this->db->select('rf_name'); $this-db->from('table'); $values = $this->db->get('table')->result_array(); 
  2. 僅從數組中獲取值

     $only_values= array(); foreach($values as $value){ if (is_numeric($value['rf_name'])) { array_push($only_values, $value['rf_name']); } } 
  3. 使用max()並傳遞值數組以從中獲取最大數值。

     $max_value = max($only_values); 

暫無
暫無

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

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