rf_id rf_name
12 12
13 13
14 14
15 15
16 GF
17 BASE
我想从Codeigniter的rf_name
列中获取 15 。每次我应该得到max('rf_name')
不允许输入字符的地方
答案 0 :(得分:0)
下面的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);
答案 1 :(得分:0)
首先,确保列rf_name
的数据类型应为整数/浮点数,而不是varchar / string / text等。
因此,根据列的数据类型,它将不存储任何字符串值
$maxid = $this->db->query('SELECT MAX(rf_name) AS maxid FROM table')->row()->maxid;
OR
$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);