代码之家  ›  专栏  ›  技术社区  ›  xkeshav

如何在mysql中从varchar(逗号分隔)字段中搜索单词?

  •  0
  • xkeshav  · 技术社区  · 14 年前

    我有一张桌子

    表\u电影

        mid  muid   actor_name          movie_list(varchar)
        18  act_6   tom hanks       mov_18,mov_19,mov_2,mov_22,mov_23 
        21  act_9   jhonny depp     mov_1,mov_10,mov_20,mov_22,mov_3,mov_9
        28  act_16  bruce willis    mov_18,mov_19,mov_2,mov_22,mov_23 
        29  act_19  jhon trovolta   mov_1,mov_10,mov_20,mov_22,mov_3,mov_9
    

    现在我只想玩那些 actor_name muid 有哪些 mov_1 (来自php)在他们的 movie_list

    如果我使用 EXIST 然后它显示错误,我的查询写在下面

        `SELECT muid,actor_name FROM table_movie WHERE $movieID EXIST( movie_list)`
    

    我也试过了 RLIKE 但没有结果!:(

    请告诉我如何从varchar字段中搜索单个单词

    注意

    我的表格引擎是INNODB,所以fultext搜索概念也失败了

    1 回复  |  直到 4 年前
        1
  •  0
  •   Jla    14 年前

    那怎么办

    SELECT muid,actor_name FROM table_movie WHERE movie_list LIKE '%,$movieID,%'
    OR movie_list LIKE '%,$movieID'
    OR movie_list LIKE '$movieID,%'
    OR movie_list LIKE '$movieID'
    

    ?

    编辑:我修改了查询以考虑注释。有点难看,但我想会管用的。忘了性能吧。另一个问题是标题中有逗号。

    如果你可以修改这个模式,你可以有一个“电影”表和一个“演员电影”表。