因为我试图通过稍微使用代码来理解SQL,所以我遇到了这种情况.我运行这段代码
SELECT * FROM jobs WHERE MATCH ( title, location, description ) AGAINST ( 'New York designer')
Run Code Online (Sandbox Code Playgroud)
我得到了正确的行结果.但是,如果我问自己,"好吧,如果我只想看一栏怎么办?"
SELECT * FROM jobs WHERE match(location) against ('designer')
Run Code Online (Sandbox Code Playgroud)
我收到错误"无法找到与列列表匹配的FULLTEXT索引".为什么?我不确定这个错误意味着什么.我只删除了两个单词和逗号.
我改变了作业表以使用MyISAM引擎.这是否意味着它可以搜索或" FULLTEXT"?由于InnoDB不可搜索,这是正确的说法吗?
但现在,当孤立到搜索一列时,这是一个问题?
如果这有意义,请告诉我,我会重新编辑.
FULLTEXT索引是MyISAM存储引擎的一项功能.
您无法与位置列匹配,除非FULLTEXT该列上仅有索引.
MATCH()列列表必须与表的某些FULLTEXT索引定义中的列列表完全匹配,除非此MATCH()是IN BOOLEAN MODE.布尔模式搜索可以在非索引列上完成,尽管它们可能很慢.
http://dev.mysql.com/doc/refman/5.0/en/fulltext-restrictions.html