mysql - 在 SQL 函数内运行 SELECT 语句

标签 mysql sql

我正在尝试在这样的函数中使用 select 语句:

CREATE FUNCTION get_Id (d DATE) RETURNS INTEGER
BEGIN
DECLARE @retval INTEGER
SELECT id 
    from date_store c
    WHERE c.start_date <= d && c.end_date >= d
RETURN @retval
END

我不确定我是否正确编写了这个函数,因为我无法运行它。基本上我需要的是调用这个函数,以便根据表 date_store 中给出的日期范围获取 id。

我是 SQL 新手。

最佳答案

SQL 中不存在条件 &&。请改用 AND。 您还需要使用SELECT id INTO @retval分配返回的变量。 也将 INTEGER 替换为 INT,并且不要忘记分号。 它将是这样的(未测试)

CREATE FUNCTION get_Id (d DATE) RETURNS INT
BEGIN
DECLARE @retval INT;
SELECT id INTO @retval
    FROM date_store c
    WHERE c.start_date <= d AND c.end_date >= d;
RETURN @retval;
END

MySQL function with SELECT statment

关于mysql - 在 SQL 函数内运行 SELECT 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22261602/

相关文章:

javascript - NodeJS - 需要帮助理解同步依赖的 MySQL 查询代码并将其转换为可用的代码

如果参数不为 null 或为空,则 SQL 更新

php - 我应该在 Laravel 4 应用程序中的哪里添加原始 SQL 查询?

MySQL-python:SELECT 返回 'long' 而不是查询

php - 我想保存我选择的所有复选框值

mysql - 为什么 SQL 不匹配两个字符串?

javascript - 自动过期帖子

mysql - 使用特定电子邮件更新表中的状态

sql - 如何使用 Perl 检索临时表的 SQL 字段名称?

mysql - SQL - 当在另一列中发现重复值时过滤另一列