MySQL中的Like子句没有按预期显示输出

时间:2015-12-01 02:53:45

标签: mysql enums

我创建了一个过程,其中我的列值为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'

那么,请问你能说出我犯的错误是什么?

提前致谢

1 个答案:

答案 0 :(得分:0)

你不能把像这样的var Completenessip放在LIKE字符串中,你必须使用CONCAT:

not like CONCAT('%', Completenessip, '%');