Возможно ли в MySQL выбрать строки, содержащие часть, на которую есть ссылки в другом столбце? - PullRequest
0 голосов
/ 30 марта 2020

Вот пример, моя «ссылка» выглядит следующим образом:

  1. | Зевс
  2. | Посейдон
  3. | Аполлон

Тогда у меня есть эта таблица "для сравнения":

  • Благословение Посейдона
  • Случайное благословение
  • Сила Зевса

И что я хочу, так это:

  • Благословение Посейдона | Посейдон
  • Сила Зевса | Зевс

Есть ли способ сравнить содержимое строк с таблицей ссылок?

Что я пробовал:

WHERE ... IN (SELECT reference FROM referencetable), но это сравнение всего строка строки, поэтому ничего не возвращает, потому что она не содержится в справочной таблице

WHERE ... LIKE CONCAT("%", (SELECT reference FROM referencetable), "%"), но это trhow и ошибка, потому что она работает только для одного ссылочного значения (ошибка говорит о том, что имеется более одной строки)

Есть ли способ объединить эти 2 идеи для достижения моей цели?

1 Ответ

2 голосов
/ 30 марта 2020

Вы можете использовать join с like:

select t.*, c.*
from t1 join
     tocompare c
     on c.reference like concat('%', t1.col, '%');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...