Запрос относительно предложения 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 ..;