Mysql 结合通配符和变量占位符的SQL

Mysql 结合通配符和变量占位符的SQL,mysql,sql,wildcard,placeholder,Mysql,Sql,Wildcard,Placeholder,我试图将我的一个SQL函数更改为“类似”查询字段,而不是完全匹配查询字段 然而,我的语法似乎给了我错误 如果使用占位符,语法是否需要更改 SQL查询在运行时运行良好; 其中SOUNDEXf.foodname=SOUNDEX 有人有什么想法吗?非常感谢 " SELECT DISTINCT r.restpic, r.restname" + " FROM restaurants r" + " JOIN food f ON f.restid = r.restid"

我试图将我的一个SQL函数更改为“类似”查询字段,而不是完全匹配查询字段

然而,我的语法似乎给了我错误

如果使用占位符,语法是否需要更改

SQL查询在运行时运行良好; 其中SOUNDEXf.foodname=SOUNDEX

有人有什么想法吗?非常感谢

" SELECT DISTINCT r.restpic, r.restname"
        + " FROM restaurants r"
        + " JOIN food f ON f.restid = r.restid"
        + " JOIN drinks d ON d.restid = r.restid"
        + " WHERE SOUNDEX(f.foodname) LIKE '%SOUNDEX(?)%'"
        + " AND SOUNDEX(d.drinkname) LIKE '%SOUNDEX(?)%'");
编辑:添加错误图片

SQL语句是我正在构建的Java/JSP项目的一部分,因此出现以下错误:

您大概打算:

WHERE SOUNDEX(f.foodname) LIKE CONCAT('%', SOUNDEX(?), '%' AND
      SOUNDEX(d.drinkname) LIKE CONCAT('%', SOUNDEX(?), '%')

它似乎给了你错误,还是给了你错误?如果是的话,你能公布实际的错误吗?有什么想法吗?我花了一段时间才得出这样的印象:你确实知道自己在尝试什么。如果你缩小每个问号的替代范围,我可能会有所帮助。谢谢,我试过了,但仍然得到同样的错误。如果我删除SOUNDEX功能会有什么不同吗?如果这意味着声明会继续下去,我可以没有它