Запрос относительно предложения LIKE и оператора Select в SQLworkbench

Я хочу получить данные из базы данных, выполнив, например: следующий запрос:

  Select * from Employee emp
inner join Department dept on emp.empid=dept.empid
where dept.OrderID like '%1' OR
      dept.OrderID  like '%,1' OR
      dept.OrderID  like '%,1,%' OR
      dept.OrderID  like '1,%'
order by ..;

** Выше условие -> 1 ИЛИ 2,1 ИЛИ 2,1,3 ИЛИ 1,2

Вместо '1' в запросе выше, я хочу передать оператор выбора (выберите OrderID из Orders, где OrderName = 'ABCD').

Я пытался, но не получил его синтаксис мудрый. Пожалуйста, кто-нибудь может подсказать мне, как выполнить это правильно. Благодарю.

1 ответ

Решение

Попробуй это:

     Select * from Employee emp
    inner join Department dept on emp.empid=dept.empid
    where dept.OrderID like CONCAT('%', (select OrderID from Orders where OrderName= 'ABCD')) OR
          dept.OrderID  like CONCAT('%,', (select OrderID from Orders where OrderName= 'ABCD')) OR
          dept.OrderID  like CONCAT('%,', (select OrderID from Orders where OrderName= 'ABCD'), ',%') OR
          dept.OrderID  like CONCAT((select OrderID from Orders where OrderName= 'ABCD'), ',%')
order by ..;
Другие вопросы по тегам