Задать вопрос
@Galdar
Web, JS, PHP, NGINX, Linux

Каким образом можно перебрать массив в строке для поиска в IN?

Знатоки, такой вопрос, как мне реализовать вот такую задачу. Есть столбец с идентификаторами в таблице [1000003440,1000000356,1000000454]. При получении записей из этой таблице я хочу в этом столбце не выводит иды в массиве, а по ним получить сразу данные из другой таблицы

Тут логично понять что не рабочий запрос, но суть такая. Не могу понять как в IN перебрать массив.
SELECT * FROM `table_1`
LEFT JOIN `table_2` T on T.`id` IN (table_1.array_id)
  • Вопрос задан
  • 273 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
1. Найти того гения, который придумал так хранить данные, и дать ему хорошенько по голове, чтобы он на всю жизнь запомнил, что так делать нельзя
2. Сделать нормальную базу данных, где эти идентификаторы хранятся в таблице-связке
3. Выполнить простейший стандартный SQL запрос.
Ответ написан
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
Вы можете попробовать использовать JSON_CONTAINS следующим образом
SELECT * 
FROM table_1 T1 
LEFT JOIN table_2 T2 ON JSON_CONTAINS(
    array_id, 
    CAST(T2.`id` AS JSON), 
    '$'
  );


MySQL JSON_CONTAINS
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы