2016-03-03 7 views
-1

Я использую CodeIgniter. В моей таблице одно из полей содержит значение как 1,2 или 1 или 2. Теперь я хочу проверить условие в модели. Имя столбца - это период, указанный выше.Проверьте условия в значениях, разделенных запятой

модель

if($post_period == 1) 
     { 
      $this->db->where('period',1);    
     } 
     else if($post_period == 2) 
      { 
       $this->db->where('period',2);  
      } 
+0

$ post_period = 1,2 или 1 или 2? – kaushik

+0

эти три возможны – robins

+1

, чем я думаю, вы можете использовать if ($ post_period == 1 || $ post_period == 2) {} else if ($ post_period == 1) {} else if ($ post_period == 2) { } – kaushik

ответ

2

Использование Mysql Функция FIND_IN_SET (ул strlist).

Возвращает значение в диапазоне от 1 до N, если строка str находится в списке строк списка, состоящем из N подстрок.

Строковый список представляет собой строку, состоящую из подстрок, разделенных символами “,”. Если первый аргумент является константой, а второй - столбцом типа SET, функция FIND_IN_SET() оптимизирована для использования битовой арифметики.

Возвращает 0, если str не находится в списке или если strlist является пустой строкой. Возвращает NULL, если любой аргумент равен NULL.

Эта функция работает неправильно, если первый аргумент содержит символ запятой (",").

$this->db->where("FIND_IN_SET('$post_period' , period) "); 
+0

thank u..can я могу задать еще один – robins

+0

SELECT 'id', IF (' period' = 4, 'p_fee', '(SUM ('p_fee2' +' p_fee1'))' как totfee) FROM tbl – robins

Смежные вопросы