[英]Mysql FULL TEXT index search error
所以我在表的一列中添加了全文索引,我的数据库引擎是MyIsam,但仍然收到此讨厌的错误:
致命错误:在...中,消息为“找不到与列列表匹配的FULLTEXT索引”的未捕获异常“ mysqli_sql_exception” ...我的查询:
$stmt = $db->prepare("SELECT loc, lt, lg FROM locations WHERE MATCH(loc) AGAINST(?) ");
如何解决这个问题,我应该寻找什么?
您应该寻找FULLTEXT索引的定义。 显然,除了单个loc
列外,它还为多个列定义了。
mysql> SHOW CREATE TABLE locations\G
CREATE TABLE `locations` (
`loc` text,
`name` text,
`summary` text,
FULLTEXT KEY `name` (`name`,`summary`,`loc`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
您在MATCH()
函数中命名的列必须是全文索引的所有列,并且它们的顺序必须相同。
例:
-- WRONG; only using one of the three columns
SELECT loc, lt, lg FROM locations WHERE MATCH(loc) AGAINST(?)
-- WRONG; using all three columns, but in a different order than the index
SELECT loc, lt, lg FROM locations WHERE MATCH(loc, name, summary) AGAINST(?)
-- RIGHT:
SELECT loc, lt, lg FROM locations WHERE MATCH(name, summary, loc) AGAINST(?)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.