我有两个表:recipes 和 tags,用于 CodeIgniter 应用程序中的全文搜索。对于每 1 个食谱,它们是无限数量的标签(标签的一些示例:美味、鸡肉、晚餐)。
配方表中的示例行:
食谱 ID:1 .....食谱名称:Mo's Chicken Dinner .....
配方 ID:2 ..... 配方名称:Mo's Lobster Bisque .....
标签表中的示例行:
对应的食谱 ID:1 .....标签:美味.....
对应的食谱 ID:2 .....标签:海鲜.....
我希望能够搜索龙虾并在搜索中显示名称与“龙虾”匹配的食谱。但我也想搜索“海鲜”并显示具有相应食谱的标签。
这是我的代码(在我添加连接语句之前,它适用于一个表全文搜索):
// Execute our SQL statement and return the result
$sql = "SELECT recipes.name,recipes.durationtotal
FROM recipes LEFT JOIN tags ON recipes.id = tags.recipes_id
WHERE MATCH (recipes.name,tags.tag) AGAINST (?) > 0 AND user_id = ".$id." ORDER BY recipes.name ASC";
$query = $this->db->query($sql, array($terms, $terms));
return $query->result();
把这个放进去后,我得到了错误:
Error Number: 1210
Incorrect arguments to MATCH
SELECT recipes.name,recipes.durationtotal FROM recipes LEFT JOIN tags ON recipes.id = tags.recipes_id WHERE MATCH (recipes.name,tags.tag) AGAINST ('f') > 0 AND user_id = 1 ORDER BY recipes.name ASC
Filename: search_model.php
Line Number: 15
第 15 行是:$query = $this->db->query($sql, array($terms, $terms));
感谢您的任何帮助!