Помогите с предложением MySQL в CodeIgniter - PullRequest
0 голосов
/ 15 февраля 2010

Мне нужна помощь в решении проблемы с MySQL, возможно ли передать массив функции, а затем выполнить сопоставление со значениями массива?

У меня есть этот запрос

function getMenu($cookieId) {
    $this->db->select('*');
    $this->db->from('categoryTable');
    $this->db->join('userMenuTable', 'categoryTable.categoryId = userMenuTable.categoryId', 'left');
    $this->db->where('userMenuTable.cookieId', $cookieId);

    $query = $this->db->get();
    return $query->result_array();

}

Используя возвращаемый массив $query можно запросить базу данных и получить все значения из таблицы, которые не соответствуют значениям массива?

Ответы [ 2 ]

1 голос
/ 15 февраля 2010

Используйте это условие в вашем запросе:

$this->db->where_not_in('fieldname', $array_of_values);

Вы не сможете напрямую использовать массив, возвращенный в вашем примере, поскольку он взят из SELECT * и, таким образом, содержит все поля таблицы. Вы должны построить массив ТОЛЬКО со значениями поля, по которому вы хотите фильтровать следующий запрос.

0 голосов
/ 15 февраля 2010

Какие столбцы у вас в этом массиве? Теоретически вы могли бы сделать

select from `new table` where `field` NOT IN (Select `field` from `old_table`)

чтобы сделать это всего за один запрос или передать массиву условие NOT IN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...