我有一个非常简单的存储过程,应该从1 db表中选择一些列,但是我得到一个与" MATCH AGAINST"相关的错误。句法。这是我的程序:
case 70000:
当我测试程序时,它给了我一个错误"#1210 - MATCH"的错误参数。我已经从程序中测试了查询并且它有效,所以我猜测问题是在程序本身的sintax中。感谢您的帮助!
答案 0 :(得分:1)
https://dev.mysql.com/doc/refman/5.7/en/fulltext-search.html说:
搜索字符串必须是在查询评估期间保持不变的字符串值。例如,这排除了一个表列,因为每行可以有所不同。
我会这样说,你不能使用存储过程参数Description
作为AGAINST
的参数。
所以你必须在程序中使用PREPARE / EXECUTE来执行此操作。
来自@Michael的评论:
这是一个很好的观点,我没有注意到OP的表有一个列,其名称与函数参数的名称相同。你是对的,这可能会引起歧义。
确保程序和参数的参数与您的任何列具有不同的名称始终是一个好主意,以避免这种歧义。