2010-03-15 63 views
4

Iam对于SQL中的函数来说很新颖,我想创建一个函数来比较MySQL表中的值与之前的值,我不知道如何执行此操作。MySQL的函数来比较db表中的值与以前的

例如(IID是输入值)

 
DECLARE pVal INT(20); 
DECLARE val INT(20); 

SELECT price INTO pVal FROM products WHERE Id=iId; 

SELECT price FROM products; 

IF price == pVal THEN 
SET val = price; 
END IF; 

感谢

+2

究竟是什么问题并不十分清楚? – Leslie 2010-03-16 14:48:16

+1

你如何定义之前?你想找什么?所有具有不同价格或产品价格不同的记录(如果是这样,表格产品存储了什么?) – Unreason 2010-03-31 11:52:34

+0

您的代码无效。难道你不能通过SET val = pVal来做同样的事情吗?您正在以相同的价格迭代相同的产品。 – 2010-04-01 20:27:19

回答

1

我不知道如何在一个表上运行一个选择查询,然后从该函数返回返回多个值,一旦他们有被操纵。此外,我不确定是否可以在返回多行的函数中运行SELECT查询。第一个答案是你不能返回一个数组数组,或者我认为从一个函数中有多行。因此,我认为最好的方法是使用返回的新数据集创建一个临时表。

 

DROP TEMPORARY TABLE IF EXISTS employeeTemp; 
    CREATE TEMPORARY TABLE employeeTemp AS 
    SELECT id,start_date 
    FROM employee; 

其次,答案是肯定的,你可以运行一个函数内部SELECT查询返回不止一行。

对不起,我对MySQL的功能很陌生。

+2

你能解释一下,你想做什么?因为现在我会认为触发器可能是你想要的。 – sfossen 2010-03-26 16:21:45