#mysql #sql #database #join #select
#mysql #sql #База данных #Присоединиться #выберите
Вопрос:
У меня есть массив ISO-кодов («DE», «AF» …) и таблица «country» с ISO-столбцом.
Теперь мне нужно отфильтровать все коды из моего массива, которые не существуют в ISO-столбце. На мой взгляд, это выглядело бы примерно как следующий псевдо-SQL:
SELECT * FROM my_array WHERE ("DE", "AF", ...) AS my_array NOT IN country.iso
Есть ли какой-либо способ сделать это в обычном SQL, кроме перебора массива в PHP (или вообще любого кода)?
Комментарии:
1. «массив» не является конструкцией MySQL, поэтому ваш вопрос неясен.
2. в данном случае это массив PHP, хотя было бы достаточно записать разделенный запятыми список непосредственно в SQL
Ответ №1:
кажется, вам нужно not in
select * from tbale where country.iso in ('DE','AF')
Комментарии:
1. это дало бы мне все непревзойденные значения из столбца базы данных, а не значения из массива…
Ответ №2:
Вы ищете NOT IN
? Правильный синтаксис:
WHERE country.iso NOT IN ('DE', 'AF', ...)
Комментарии:
1. это дало бы мне все непревзойденные значения из столбца базы данных, а не значения из массива…