我正在使用 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;
我确实正确地得到了行输出。有人可以帮助我存储查询吗?
在 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 ;