我创建了一个过程,其中我的列值为enum datatype as Completeness_Type`ENUM(' B',' I',' C',' BC',' BI&#39 ;,' IC',' BIC')
我写了一个程序,我希望显示所有没有' I'在completeness_type列中。 以下是我写的程序
USE `videogame_collection_3`;
DROP procedure IF EXISTS `Get_Info_By_Games_missing_Something`;
DELIMITER $$
USE `videogame_collection_3`$$
create PROCEDURE `Get_Info_By_Games_missing_Something`(IN Completenessip VARCHAR(15))
BEGIN
SELECT
video_game.Game_Name,
video_game.Genre,
mycollection.Purchase_Date,
mycollection.Purchase_Price,
mycollection.`Condition`,
platform.Platform_Name,
mycollection.Completeness_Type
FROM
video_game
INNER JOIN
video_game_platform_mycollection ON video_game.Game_Id = video_game_platform_mycollection.Game_Id
INNER JOIN
platform ON video_game_platform_mycollection.Platform_Id = platform.Platform_Id
INNER JOIN
mycollection ON video_game_platform_mycollection.MyCollection_Id = mycollection.MyCollection_Id
where mycollection.Completeness_Type not like '%Completenessip%';
END
$$
DELIMITER ;
我用
调用程序致电Get_Info_By_Games_missing_Something(' I');
预期输出:我想显示completeness_type列,其中不包含' I' 因此,completenss_type列中的记录必须是' B' C',' BC'
那么,请问你能说出我犯的错误是什么?
提前致谢
答案 0 :(得分:0)
你不能把像这样的var Completenessip放在LIKE字符串中,你必须使用CONCAT:
not like CONCAT('%', Completenessip, '%');