Как получить max () целочисленного значения из поля varchar в codeigniter? - PullRequest
0 голосов
/ 15 января 2019
rf_id  rf_name  
12      12
13      13
14      14
15      15
16      GF
17      BASE

Я хочу получить 15 из столбца rf_name в Codeigniter. каждый раз я должен получить max('rf_name'), где символы не разрешены

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Во-первых, убедитесь, что в столбце 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');

Если у вас есть как строковые, так и числовые значения, вам нужно выполнить следующие шаги

  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); 
    
0 голосов
/ 15 января 2019

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...