子查询(反对的参数不正确)使用 Mysql


当我使用 MySql 使用 MATCH AGAINST 执行此查询时(请参阅查询

1st),此查询中的问题生成了这样的错误(请参阅错误)或当我使用 = 执行相同的查询时,它们正常执行(请参阅查询 2nd)。

我的问题是我做错了什么?

查询 1st

SELECT (SELECT COUNT(up.`user_id`) 
FROM `users_post` up WHERE MATCH (up.`user_id`) AGAINST (uf.`user_id`)) 
AS user_count 
FROM `users` uf

错误

enter code hereError Code : 1210
Incorrect arguments to AGAINST
(0 ms taken)

更新

查询第二个

SELECT 
(SELECT COUNT(up.`user_id`) 
FROM `users_post` up WHERE up.`user_id` = uf.`user_id`) 
AS user_count 
FROM `users` uf

问题是AGAINST的参数必须是文字字符串,例如 'Fred' 。不允许使用像 uf.user_id 这样的列名。

MATCH (up.`user_id`) AGAINST (uf.`user_id`)
--                            ^^^^^^^^^^^^ not allowed!

从文档中:

搜索字符串必须是文本字符串,而不是变量或列名。

您可能需要使用 LIKE 而不是 MATCH ,尽管您应该注意它会慢得多。

相关内容

  • 没有找到相关文章

最新更新