首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过c#中的标记搜索数据库中的数据

通过c#中的标记搜索数据库中的数据
EN

Stack Overflow用户
提问于 2015-10-12 03:32:07
回答 2查看 410关注 0票数 0

我的数据库里有一张电影清单。我想用它们的标签搜索一些电影。

前:

  • 恐怖电影的标签是“恐怖,喜剧,恐怖电影,鬼魂”
  • saw III -标签是“恐怖,锯,”
  • 鬼屋的标签是“恐怖,鬼魂”*等等。

当我搜索"ghosts"时,结果应该返回到恐怖电影I,幽灵屋等(返回到具有相同标签的电影列表)。

代码语言:javascript
复制
"SELECT movie_name FROM table_movie WHERE tags = " + movie_tags + ";"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-12 04:18:06

您应该从数据库架构开始。标记作为文本注释是错误的决定,数据库将不会被规范化,搜索将是低效的。

做三张桌子,就像:

代码语言:javascript
复制
Tag(tagID primaryKey, tagName)    
Movie(movieID primaryKey, movieName)
TagMovie(tagID foreignKey, movieID foreingKey)

不要忘记对(tagID,movieID)的唯一约束-使元组主键,您就完成了。

然后你可以搜索它

代码语言:javascript
复制
SELECT Movie.* FROM Movie 
JOIN TagMovie ON Movie.movieID = TagMovie.movieID
JOIN Tag ON Tag.tagID = TagMovie.tagID
WHERE Tag.tagName = "ghosts"
票数 2
EN

Stack Overflow用户

发布于 2015-10-12 03:59:12

根据你提出的问题,你的解决办法是:

您需要编写一个字符串,该字符串将像下面的查询语句一样结束

SELECT movie_name FROM table_movie WHERE tags like '%ghosts%'

尽管您所使用的方法并不有效。你应该改变你的结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33072863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档