我在数据库行上使用关键字实现搜索。 我必须使用JDBC预处理语句执行此查询。
SELECT id, name, ci FROM clients WHERE LOWER(name) LIKE '%keyword%'
我试过的是:
ps = getConnection().prepareStatement("SELECT id,
name,
ci
FROM clientes
WHERE LOWER(name) LIKE '%?%'");
如果我写这个,系统找到的行有?开头或结尾的符号。 显然,下面的语句没有说查询没有要传递的参数。
ps.setString(1, keyword);
同样的方式:
SELECT id, nombre, ci FROM clientes WHERE LOWER(nombre) LIKE %?%
非常感谢任何帮助
答案 0 :(得分:4)
尝试使用以下格式的SQL文本:
... LIKE CONCAT('%', ? , '%')
答案 1 :(得分:0)
您准备好的陈述应该是
SELECT id, name, ci FROM clients WHERE LOWER(name) LIKE ?
然后您可以将参数设置为%keyword%
。