SQL 全文搜索 - 'where clause' 中的未知列 'test'
SQL fulltext search - Unknown column 'test' in 'where clause'
我正在尝试使用以下查询在 Joomla 系统中进行全文搜索:
SELECT `id`,`user_id`,`article_id`,`body`,`created_time`
FROM `#__user_notes`
WHERE (`user_id` = '660' AND `article_id` IN (23, 24) AND `id` < '385')
OR (MATCH (body) AGAINST (`test`) AND `id` < '385' AND `user_id` = '660')
ORDER BY id DESC LIMIT 10
抛出此错误:
JDatabaseExceptionExecuting: Unknown column 'test' in 'where clause'
没有全文搜索行也能正常工作:
OR (MATCH (body) AGAINST (`test`) AND `id` < '385' AND `user_id` = '660')
我已将 ENGINE
设置为 MYISAM
,因为此答案建议 fulltext query in joomla
您应该从查询中删除反引号。
OR (MATCH (body) AGAINST (`test`) AND `id` < '385' AND `user_id` = '660')
以上应替换为
OR (MATCH (body) AGAINST ('test') AND `id` < '385' AND `user_id` = '660')
Mysql 对列名称使用反引号,但 test
这是您要搜索的文本。
因为您使用的是 Joomla,所以在 Joomla 中,您应该使用 $db->quote
而不是 $db->quoteName
。 quoteName
用于转义列名,quote
用于值
我正在尝试使用以下查询在 Joomla 系统中进行全文搜索:
SELECT `id`,`user_id`,`article_id`,`body`,`created_time`
FROM `#__user_notes`
WHERE (`user_id` = '660' AND `article_id` IN (23, 24) AND `id` < '385')
OR (MATCH (body) AGAINST (`test`) AND `id` < '385' AND `user_id` = '660')
ORDER BY id DESC LIMIT 10
抛出此错误:
JDatabaseExceptionExecuting: Unknown column 'test' in 'where clause'
没有全文搜索行也能正常工作:
OR (MATCH (body) AGAINST (`test`) AND `id` < '385' AND `user_id` = '660')
我已将 ENGINE
设置为 MYISAM
,因为此答案建议 fulltext query in joomla
您应该从查询中删除反引号。
OR (MATCH (body) AGAINST (`test`) AND `id` < '385' AND `user_id` = '660')
以上应替换为
OR (MATCH (body) AGAINST ('test') AND `id` < '385' AND `user_id` = '660')
Mysql 对列名称使用反引号,但 test
这是您要搜索的文本。
因为您使用的是 Joomla,所以在 Joomla 中,您应该使用 $db->quote
而不是 $db->quoteName
。 quoteName
用于转义列名,quote
用于值