我正在选择一个MATCH()和AGAINST(),以便快速计算来自另一个表的数据。
对于单个字符串,我可以轻松地做到:
SELECT * from persons WHERE MATCH(full_name) AGAINST('"DOE, JOHN"');AGAINST()是否可能包含一个列名作为参数,并使用CONCAT()来生成类似的参数AGAINST('"DOE, JOHN"');?
我已经尝试了下面的查询,但这是不成功的。
SELECT id,
full_name,
citymun_id,
(SELECT COUNT(*) from other_persons WHERE MATCH(other_persons .full_name) AGAINST(CONCAT('"',persons.full_name,'"')) as person_count
FROM persons发布于 2022-03-17 17:01:50
https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html说:
AGAINST接受要搜索的字符串和指示要执行的搜索类型的可选修饰符。搜索字符串必须是查询计算期间常量的字符串值。例如,这排除了表列,因为每一行的表列都可能不同。
https://dba.stackexchange.com/questions/308880
复制相似问题