У меня есть столбец с именем post_type
set('0', '1', '2', '3', '4')
, который может быть любой комбинацией от 0 до 4MySQL Выберите любой SET, используя IN()?
Учитывая список целых чисел, как я могу выбрать любую строку, соответствующую любой из типов? Мой мозг выпученными, и я даже не могу объяснить правильно, но похоже на:
SELECT * FROM `post_content` WHERE `post_type` IN ('0','1','2');
Так со следующим набором он будет соответствовать все записи, за исключением последних один
post_type
0,1,3 (matches 0 and 1)
0,3,4 (matches 0)
0,4 (matches 0)
2,3,4 (matches 2)
3,4 (not matched)
Большое спасибо
Edit: Я понимаю FIND_IN_SET
, но я стараюсь избегать:
SELECT * FROM tbl_name WHERE
FIND_IN_SET(0,post_type)>0 ||
FIND_IN_SET(1,post_type)>0 ||
FIND_IN_SET(2,post_type)>0
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set? но это только для одиночных значений. Вы пытаетесь найти кратность, что означает, что вам, вероятно, будет лучше нормализовать настройку в подкатегорию, а затем вы можете сделать регулярное соединение. –
Я пытаюсь сопоставить любое из нескольких значений. Не одиночные значения. –
У меня нет контроля над базой данных, просто доступ к запросам тоже. :( –