Как сравнить VARCHAR с массивом значений, возвращаемых с помощью MySQL - PullRequest
0 голосов
/ 25 октября 2018

Я хочу получить идентификаторы пользователей, у которых есть партнеры с совпадающими идентификаторами партнеров.В таблице пользователей я должен сохранить идентификатор партнера в виде строки, разделенной запятыми.Сначала я получаю идентификатор партнера из таблицы партнеров, которая представляет собой массив идентификаторов (несколько записей).Затем я должен сравнить этот массив идентификаторов с partners_id в таблице пользователей.Как сравнить строку с массивом значений.

Здесь я попытался преобразовать массив идентификаторов в строку, а затем сравнил.Но это не помогло.Кто-то предлагает способ.

Запрос, который я пытался

SELECT `user`.`userID` FROM `user` WHERE `user`.`groupID` = 1234 AND `user`.`partners_id LIKE (SELECT GROUP_CONCAT(partners.id) as pid FROM `partners` WHERE `partners`.`name` LIKE '%XX%' AND `partners`.`active` = 1)

Таблица пользователей

userID groupID partners_id
 1      4       1A,2B,3C
 2      3       1A
 3      4       2B
 4      4       5C,2B

Партнеры

id  name  active
1A  XXSS    1
1B  AAYY    0
1C  ZZSS    1
2B  CCXX    1
3C  XXBB    1
5C  CCDD    0

1 Ответ

0 голосов
/ 26 октября 2018

Наконец, я нахожу userId пользователей для соответствующих партнеров следующим образом.Благодаря @Asif Thebepotra это помогло найти запрос.

SELECT users.userId FROM users INNER JOIN partners on FIND_IN_SET(partners.id,users.partners_id) > 0 where partners.name like '%XX%' AND partners.ative = 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...