У меня есть таблица с именем mm_test, как показано ниже:
id образования 1 3,4,6,8,9
Я хочу проверить, содержит ли этот массив (4,6). Как проверить это с помощью запроса MySQL. Mysql ‘IN’ команда не работает для меня.
Я поставил запрос так …
выберите * из mm_test, где образование IN (4,6);
Но этот запрос вернул пустой результат. Пожалуйста, помогите мне.
Вы можете сделать это используя find_in_set()
:
where find_in_set(4, educations) > 0 and
find_in_set(6, educations) > 0
Однако это, как правило, неэффективно. Проблема в вашей структуре данных. Вы должны использовать соединительную таблицу с одним столбцом для каждого образования, а не хранить список целых чисел в крайне неприемлемой структуре данных — строке.
Использовать этот FIND_IN_SET Руководство
SELECT *
FROM mm_test
WHERE FIND_IN_SET(4, educations) > 0
AND FIND_IN_SET(6, educations) > 0;