Can someone explain me why with that query:
SELECT * FROM `tags` WHERE (tag IN (\'willa-lentza\', 2016))
it return me all rows from tags<
You should never mix quoted and unquoted values in an IN list because the comparison rules for quoted values (such as strings) and unquoted values (such as numbers) differ. Mixing types may therefore lead to inconsistent results.
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_in