我的数据库里有一张电影清单。我想用它们的标签搜索一些电影。
前:
当我搜索"ghosts"时,结果应该返回到恐怖电影I,幽灵屋等(返回到具有相同标签的电影列表)。
"SELECT movie_name FROM table_movie WHERE tags = " + movie_tags + ";"发布于 2015-10-12 04:18:06
您应该从数据库架构开始。标记作为文本注释是错误的决定,数据库将不会被规范化,搜索将是低效的。
做三张桌子,就像:
Tag(tagID primaryKey, tagName)
Movie(movieID primaryKey, movieName)
TagMovie(tagID foreignKey, movieID foreingKey)不要忘记对(tagID,movieID)的唯一约束-使元组主键,您就完成了。
然后你可以搜索它
SELECT Movie.* FROM Movie
JOIN TagMovie ON Movie.movieID = TagMovie.movieID
JOIN Tag ON Tag.tagID = TagMovie.tagID
WHERE Tag.tagName = "ghosts"发布于 2015-10-12 03:59:12
根据你提出的问题,你的解决办法是:
您需要编写一个字符串,该字符串将像下面的查询语句一样结束
SELECT movie_name FROM table_movie WHERE tags like '%ghosts%'
尽管您所使用的方法并不有效。你应该改变你的结构。
https://stackoverflow.com/questions/33072863
复制相似问题