найти поля в массиве, не существующие в столбце

#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. это дало бы мне все непревзойденные значения из столбца базы данных, а не значения из массива…