java – SQLite从LIKE语句中选择不起作用?
发布时间:2020-12-15 01:00:21 所属栏目:Java 来源:网络整理
导读:当我查看数据库并运行此查询时,我得到了预期的结果. SELECT * FROM users WHERE options LIKE '%[-15,-3]%'; 但是,当我使用如下所示的预准备语句时,uuid为null. String opt = "[-15,-3]"; //example PreparedStatement ps = SQLite.connection.prepareStatem
当我查看数据库并运行此查询时,我得到了预期的结果.
SELECT * FROM users WHERE options LIKE '%[-15,-3]%'; 但是,当我使用如下所示的预准备语句时,uuid为null. String opt = "[-15,-3]"; //example PreparedStatement ps = SQLite.connection.prepareStatement( "SELECT * FROM users WHERE options LIKE '%" + opt + "%'" ); ResultSet rs = ps.executeQuery(); String uuid = null; while (rs.next()){ uuid = rs.getString("member"); } rs.close(); ps.close(); if(uuid != null){ System.out.println("not null: " + uuid); return Database.getUser(UUID.fromString(uuid); } 对于上面的代码,结果集中不返回任何内容.这很奇怪,因为我在SQLite查看器中使用了相同的查询,并返回了正确的行.我怎么解决这个问题?我没有看到问题. UPDATE 当我在预准备语句中直接使用“SELECT * FROM factions WHERE claim LIKE’%[ – 15,-3]%’”而不是变量时,它可以正常工作.为什么我不能使用字符串变量?我检查了变量,它打印到控制台很好. 解决方法
经过大量的反复试验,我解决了这个问题,原来我应该一直使用?并设置字符串.
PreparedStatement ps = SQLite.connection.prepareStatement( "SELECT * FROM users WHERE options LIKE ?" ); ps.setString(1,"%" + opt + "%"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |