[英]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');
如果同時具有字符串和數字值,則必須執行以下步驟
獲取列的所有值
$this->db->select('rf_name'); $this-db->from('table'); $values = $this->db->get('table')->result_array();
僅從數組中獲取值
$only_values= array(); foreach($values as $value){ if (is_numeric($value['rf_name'])) { array_push($only_values, $value['rf_name']); } }
使用max()
並傳遞值數組以從中獲取最大數值。
$max_value = max($only_values);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.