java - 如何在动态sql搜索中使用LIKE?

标签 java mysql sql mysql-workbench

我正在尝试进行动态的不区分大小写的搜索,但结果是参数索引超出范围(1 > 参数数量,即 0)

     java.sql.PreparedStatement preStatement = connect.prepareStatement
                            "SELECT word1 from words WHERE word2 like '%?%'");
     preStatement.setString(1, word);
     ResultSet rs = preStatement.executeQuery();

最佳答案

java.sql.PreparedStatement preStatement = connect.prepareStatement
                            "SELECT word1 from words WHERE word2 COLLATE UTF8_GENERAL_CI like '?'");
preStatement.setString(1, "%"+word+"%");
ResultSet rs = preStatement.executeQuery();

当您调用 setString() api 时,请使用表达式。

对于不区分大小写的搜索,您必须在 like 之前添加 COLLATE UTF8_GENERAL_CI

关于java - 如何在动态sql搜索中使用LIKE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28766610/

相关文章:

java - 如何从 ValueEventListener Firebase 检索数据

mysql - 如何在mysql中缓存级联选择查询的子集

php - 创建链接服务器到Mysql Cpanel

sql - PostgreSQL - 来自同一函数调用的多个聚合查询

java - 删除重复项,同时保持并行列表同步

java - 具有阻塞 IO 的 SSLEngine

java - 如何使音池静音?

php - 如何在PHP文件中使用JSON进行跨域调用?

php - 我的脚本下载页面的源代码而不是实际文件

sql - 在另一个表的列上使用 WHERE 子句