求如何查询这样的字段,SQL语句如何写。

daniel_daniel 2013-09-29 02:11:41
大家好,我有一个数据查询问题,用了几个方法还是没有解决,特来请教。

我有一个包含新闻的数据表,其中有一个字段是存放该新闻的关键字的,以如下形式存放。
"关键字1;关键字2;关键字3;"其中分号是中文件全角的。

我现在有一个需求,就是查询这条新闻相似的新闻,就是用这个"关键字"来关联。于是我写了如下的SQL语句,一开始的时候还是可以使用的,但是用到现在越来越慢。特别奇怪的是,不是所有条都这样,有些新闻几乎就是要卡死,卡的不动。明显遇到了查询性能问题,特来请教大家如何解决这个问题。

这条语句我是用正则来解决新闻关键字相关联的情况。


select * from news where ID<>? and concat(';',Keywords,';') regexp concat(';(',replace(?,';','|'),');') and M_IsDelete=FALSE order by Datetime desc limit 0,5




...全文
589 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2013-09-29
  • 打赏
  • 举报
回复
使用 全文索引
daniel_daniel 2013-09-29
  • 打赏
  • 举报
回复
二、MYSQL数据库 能不能让上面这个需求快点,我这一点页面就卡死。
daniel_daniel 2013-09-29
  • 打赏
  • 举报
回复
我从两个方面说这个事情吧。 一、需求 我们网站有很多新闻,当点击新闻标题时,进入新闻详细页面。这个页面显示新闻内容,然后下方列出与这条新闻相关的新闻。我问的问题就与查询相关新有关系,相关性通过每条新闻的"关键字"体现并关联。如下面的语句。 select * from news where concat(';','苹果;鸭梨;葡萄',';') regexp concat(';(',replace('鸭梨',';','|'),');') order by Datetime desc limit 0,5
WWWWA 2013-09-29
  • 打赏
  • 举报
回复
查找的内容是什么,关键字1、关键字2。。。内容是什么, 举例说明
daniel_daniel 2013-09-29
  • 打赏
  • 举报
回复
引用 1 楼 WWWWA 的回复:
没办法,修改表结构 ID content 1 关键字1 2 关键字2 3 关键字3
即使是这样的表结构,不也是存在我那个问题问题吗?这个如何优化的呢?是采用索引?
daniel_daniel 2013-09-29
  • 打赏
  • 举报
回复
引用 4 楼 WWWWA 的回复:
用你的结构,无法优化,无论用字符串查找函数 OR 正则,均无法用到索引 OR 用全文搜索试试
好的,谢谢您,我去试试。
WWWWA 2013-09-29
  • 打赏
  • 举报
回复
用你的结构,无法优化,无论用字符串查找函数 OR 正则,均无法用到索引 OR 用全文搜索试试
daniel_daniel 2013-09-29
  • 打赏
  • 举报
回复
引用 2 楼 daniel_daniel 的回复:
[quote=引用 1 楼 WWWWA 的回复:] 没办法,修改表结构 ID content 1 关键字1 2 关键字2 3 关键字3
要改好多程序和表的关系,真的无药可救了吗》[/quote]
daniel_daniel 2013-09-29
  • 打赏
  • 举报
回复
引用 1 楼 WWWWA 的回复:
没办法,修改表结构 ID content 1 关键字1 2 关键字2 3 关键字3
要改好多程序和表的关系,真的无药可救了吗》
WWWWA 2013-09-29
  • 打赏
  • 举报
回复
没办法,修改表结构 ID content 1 关键字1 2 关键字2 3 关键字3

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧