Как сравнить два массива в запросе MySQL?

У меня есть таблица с именем mm_test, как показано ниже:

id образования
1 3,4,6,8,9

Я хочу проверить, содержит ли этот массив (4,6). Как проверить это с помощью запроса MySQL. Mysql ‘IN’ команда не работает для меня.

Я поставил запрос так …

выберите * из mm_test, где образование IN (4,6);

Но этот запрос вернул пустой результат. Пожалуйста, помогите мне.

0

Решение

Вы можете сделать это используя find_in_set():

where find_in_set(4, educations) > 0 and
find_in_set(6, educations) > 0

Однако это, как правило, неэффективно. Проблема в вашей структуре данных. Вы должны использовать соединительную таблицу с одним столбцом для каждого образования, а не хранить список целых чисел в крайне неприемлемой структуре данных — строке.

7

Другие решения

Использовать этот FIND_IN_SET Руководство

SELECT *
FROM mm_test
WHERE FIND_IN_SET(4, educations) > 0
AND FIND_IN_SET(6, educations) > 0;
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector