Я пытаюсь извлечь некоторые данные из базы данных SQL.Я учусь на SQL и использую mysql-workbench.
Вот мой пример базы данных.
Из этой таблицы я хочу проверить, существует ли определенный order_id или нет, вставляя определенныефрукты, канцтовары и напитки в качестве параметра для хранимой процедуры.Пользовательский ввод будет выполнен в виде массива кортежей.Например,
SearchArray = [("Fruit", "Apple"), ("Fruit", "Papaya"), ("Stationary", "Pen"), ("Drinks", "Juice"))]
Вот псевдокод:
DELIMITER $$
DROP PROCEDURE IF EXISTS CheckOrders;
CREATE PROCEDURE CheckOrders(OrderType VARCHAR(20), OrderItem VARCHAR(20))
BEGIN
FOR EACH IN SearchArray
SELECT ORDER_ID
FROM OrderTable
GROUP BY ORDER_ID
HAVING
COUNT(CASE WHEN OrderType = OrderItem THEN 1 END) > 0;
END$$
DELIMITER ;
CALL CheckOrders(SearchArray);
From this I should get
First loop result = [1, 3, 4] //Order_ID
Second loop result = [1, 3]
Third loop result = [1, 3]
Fourth loop result = [3] //Final result
Я даже не знаю, возможен ли цикл for в mysql или нет.Если нет, есть ли альтернативный способ проверить, существует ли order_id или нет, используя массив кортежей, как указано выше, в качестве пользовательского ввода.