我想搜索string 'Trevor DSouza'
在表中,而不提及该字符串所属的列名。该字符串可能存储在不同的不同列中。因此,为了搜索该字符串,我编写了如下查询:-
SELECT * FROM claim_master
WHERE MATCH (type,cheque) AGAINST('Trevor DSouza' IN NATURAL LANGUAGE MODE);
当我执行此查询时,它显示错误,例如:-
Error Code: Can't find FULLTEXT index matching the column list
因此,为了解决此错误,我创建了一个全文索引,检查为:-
ALTER TABLE claim_master ADD fulltext my_index(cheque);
那么在我尝试执行查询之后:-
SELECT * FROM claim_master
WHERE MATCH(type,cheque) AGAINST('Trevor DSouza' IN NATURAL LANGUAGE MODE);
它再次向我显示相同的错误:-
Error Code: Can't find FULLTEXT index matching the column list
同时我还可以检查所有列中的搜索字符串。有没有办法在匹配函数中传递列名称,例如:- MATCH(full_name,mode,cheque,particular,desrption,final_status)
??如果有一种方法可以一次传递列,那么首先我们必须为该列创建一个 FULLTEXT 索引???如何做到这一点???
请帮我解决这个问题。我在这个查询中陷入困境
最佳答案
您需要在与要使用的 MATCH(...)
相同的列上建立全文索引。
更改表 Claim_master 添加全文 my_index(type,cheque);
关于mysql - 如何在表中搜索特定字符串而不提及该字符串在mysql中所属的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36441571/