Mysql Query In codeigniter - PullRequest
       2

Mysql Query In codeigniter

0 голосов
/ 29 ноября 2011

Это мой запрос MySQL

$acountry = 1;
$this->db->where_in('varcountry', $acountry);
$val = $this->db->get('tblagencies')->result();

В таблице базы данных поле varcountry хранится примерно так: 1,2,3,4, его тип varchar. Каждая строка в таблице содержит несколько стран,причина использования varchar datatype.

Здесь я хочу выбрать строки таблицы, которые имеют значение $acountry в поле varcountry.

Как я могу это сделать? Код выше приведенисправить?

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Вы выбрали неправильный тип данных для хранения значения 1,2,3,4, разделенного запятыми, в varchar,
. Вам следует выбрать тип данных набора или нормализовать в отдельную таблицу, например:-

create table country (id, name ...);
create table agencies_country ( agency_id, country_id);
insert into agencies_country (agency_id, country_id)
values (x,1), (x,2), (x,3), (x,4);
// meaning 1,2,3,4 = 4 rows

// grabbing result using inner join

Использовать set проще, но обычная практика - нормализовать данные (что требует некоторого понимания).

Мне не нравится активная запись в codeigniter,
прост в использовании (не сомневаюсь в этом),
, но это не позволяет потерять гибкость

Лично мне нравится конструкция моего собственного запроса,
при условии, что вы понимаете схему таблицы (что вы должны в любом случае)

0 голосов
/ 29 ноября 2011

используйте этот запрос ..

$search_field = array('varcountry'=>$acountry)
$result = $this->db->get_where('tblagencies' , $search_field );

but in codeignator you can use your own queries like

$sql = "select * from tblagencies where varcountry like '%acountry%'";
$result = $this->db->query($sql);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...