Можно ли в MySQL выбрать записи через сравнение массивов id?

Здравствуйте.
У меня в таблице есть поле для чисел через запятую, например, 1,2,3 (отображение дней недели).
Оператор "IN" делает выборку по совпадению с первой цифры.
Например, если указать "IN (1,2)", то выберет поля, начинающиеся с 1 (единицы)
SELECT * FROM objects WHERE week_day IN (1,2);

А если указать "IN (2,3)" (начинается не с единицы), то выдаст ошибку, хотя совпадают 2 и 3.
SELECT * FROM objects WHERE week_day IN (2,3);
Был бы благодарен за подсказку, как решить эту проблему и делать выборку по совпадению любых цифр.
  • Вопрос задан
  • 493 просмотра
Решения вопроса 1
mahoho
@mahoho
Full stack certified PHP developer.
IN предназначен для сравенения с результатом подзапроса: https://dev.mysql.com/doc/refman/5.7/en/any-in-som... Вам нужна функция FIND_IN_SET():
SELECT * from objects where FIND_IN_SET(2, week_day) > 0

Этот запрос найдет все записи, у которых есть 2 в поле week_day.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы