Se eu tiver um aplicativo em que estou construindo o
IN
list dinamicamente, e pode acabar vazio, o que às vezes faço é inicializar a lista com um valor impossível e adicionar a isso. Por exemplo. se for uma lista de nomes de usuário, começarei com uma string vazia, pois esse não é um nome de usuário possível. Se for um ID auto_increment, usarei -1 porque os valores reais são sempre positivos. Se isso não for viável porque não há valores impossíveis, você deve usar uma condicional para decidir se deve incluir
AND column IN ($values)
expressão no WHERE
cláusula.