ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Mysql的子查询(AGAINST的参数不正确)

2019-12-01 10:14:37  阅读:444  来源: 互联网

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


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

我的问题是,反对声明我做错了什么?

Query 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

Error

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

更新资料

Query 2nd

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!

documentation开始:

The search string must be a literal string, not a variable or a column name.

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

标签:subquery,full-text-search,match-against,mysql
来源: https://codeday.me/bug/20191201/2080274.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有