【问题标题】:Fulltext search against column value?针对列值的全文搜索?
【发布时间】:2012-04-20 11:39:52
【问题描述】:

我读过这个:

MySQL Fulltext search against column value?

但这很荒谬,我不明白为什么不能这样做。

有人知道一些解决方法吗?

谢谢

【问题讨论】:

  • 你的表引擎类型是什么?
  • 您到底遇到了什么问题。你不能简单地引用另一个链接并说这是荒谬的
  • 使用光标和光标内部的值来反对使用concat,首先清楚地分享您的需求,然后我们可以进一步提供帮助。
  • AGAINST(table1.field1) 不起作用,仅适用于文字字符串
  • 我尝试了 CONCAT(field, " ") 没有成功,同样的错误

标签: mysql sql full-text-search match-against


【解决方案1】:

这是我的旧程序,在你的情况下也可以尝试类似的方法-

BEGIN
  declare done default 0;
  declare csv1 varchar(100);
  declare cur1 cursor for select csv from table; 
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
  open cur1;
  repeat
  fetch cur1 into csv1;
  -
  -
  -
  -
  update company set (something) where match(csv) against(concat("'",csv1,"'"));
  until  done end repeat;
  -
  -
  close cur1;
  select * from table;
END

【讨论】:

  • 谢谢!显然这就是我要找的东西。如果真的适合我的情况,有人试过了吗?
  • @toPeerOrNotToPeer 这是对我的漫长过程的概述,它适用于我的情况。
【解决方案2】:

因为数据存储在目录中。当您查询全文索引时,您是从创建它的目录中读取数据,而不是从索引指向的表中读取数据。

当您“填充”目录时,您是在告诉您的服务器从表中读取数据并插入到目录中。如果你有一个非静态值,你将如何读取它?

【讨论】:

  • 我认为这个问题是关于 MySQL 的,虽然我不确定原理是否不同。
猜你喜欢
  • 2011-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-15
相关资源
最近更新 更多