sql - MySQL 函数将 db 表中的值与以前的值进行比较

标签 sql mysql stored-procedures sql-function

我对 SQL 中的函数很陌生,我想创建一个函数来将 MySQL 表中的值与以前的值进行比较,但我不确定如何执行此操作。

例如(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;

谢谢

最佳答案

我不确定如何在表上运行选择查询,然后从该函数返回操作后返回多个值。此外,我不确定您是否可以在返回多行的函数中运行 SELECT 查询。第一个答案是您不能返回数据数组,或者我认为函数中不止一行。因此,我认为最好的方法是创建一个包含返回的新数据集的临时表。

例子


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

其次,答案是肯定的,您可以在函数内运行 SELECT 查询以返回多行。

抱歉,我是 MySQL 函数的新手。

关于sql - MySQL 函数将 db 表中的值与以前的值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2450688/

相关文章:

mysql - medoo select 术语无法正常工作

mysql - mysql存储过程中order子句的case条件

sql - 重新排序 SQL Server 数据库中的项目

java - 我收到错误 "Invalid column name"

sql - 获取表中不存在的值?

sql - 在 SQL Server 中如何合并相似的字符串以用于计数目的

mysql - 无法添加或更新子行: a foreign key constraint fails

php - 按顺序选择事件数据

php - 客户姓名的字母顺序不能通过 mysql 查询正常工作

sql - 在 SQL Server 中查看与表