存储过程参数工作不正确

问题描述 投票:0回答:1

我正在使用 phpMyAdmin 运行 SQL 存储过程。我正在使用 Netflix 2023 数据库并运行以下过程。

SELECT Title,Genre,HoursViewed
FROM Netflix2023
WHERE Genre LIKE '%'+@MainGenre+'%'
ORDER BY HoursViewed DESC;

当我将 MainGenre 设置为 Drama 时,不会输出任何内容。

但是,当我运行以下查询时

SELECT Title,Genre,HoursViewed
FROM Netflix2023
WHERE Genre LIKE '%Drama%'
ORDER BY HoursViewed DESC;

我确实正确地得到了行输出。有人可以帮助我存储查询吗?

sql mysql phpmyadmin procedure
1个回答
0
投票

在 MySQL 中,您应该使用

CONCAT
函数而不是
+
来进行字符串连接

您应该更新存储过程以匹配以下示例

DELIMITER //

CREATE PROCEDURE GetMoviesByGenre(IN MainGenre VARCHAR(255))
BEGIN
    SELECT Title, Genre, HoursViewed
    FROM Netflix2023
    WHERE Genre LIKE CONCAT('%', MainGenre, '%')
    ORDER BY HoursViewed DESC;
END //

DELIMITER ;
© www.soinside.com 2019 - 2024. All rights reserved.