mysql - разделить список через запятую на список INT - PullRequest
0 голосов
/ 24 июня 2018
question:

+-----------+-------------------------+
|question id|          help_ref       |
+-----------+-------------------------+
|     1     |      1001,1002,1004     |
+-----------+-------------------------+
|     2     |      1005,1002,1001     |
+-----------+-------------------------
help:

+--------------------+
|help_id|  text      |
+--------------------+
| 1001 | sjfdisfidif |
+--------------------+
| 1002 |  dfdjdjdjjd |
+--------------------+
| 1003 | blafdsjdidjd|
+--------------------+
| 1004 | somethibngjd|
+--------------------+

я пытаюсь получить идентификаторы справки из help_ref

что я уже сделал:

SELECT *
FROM questions AS a
JOIN `help` AS b on find_in_set(b.`help_id`,a.`help_ref`) >0
WHERE b.`help_id` IN (1001,1002) // IM TRYING TO CHANGE THAT TO THE help_ref value
AND `question_id` = 1

Так как я могу изменить1001 1002 значения для фактической строки help_ref?

ожидаемый результат:

SELECT *
FROM questions AS a
JOIN `help` AS b on find_in_set(b.`help_id`,a.`help_ref`) >0
WHERE b.`help_id` IN (a.`help_ref`)
AND `question_id` = 1

help_id | text
1001    | sjfdisfidif
1002    | dfdjdjdjjd
1004    | somethibngjd

1 Ответ

0 голосов
/ 24 июня 2018

Я думаю, вы хотите это:

SELECT h.*
FROM help h
INNER JOIN question q
    ON FIND_IN_SET(h.help_id, q.help_ref) > 0 AND q.question_id = 1;

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...