5
데이터베이스를보고이 쿼리를 실행하면 예상대로 결과가 나타납니다.SQLite select에서 LIKE 문이 작동하지 않습니까?
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 뷰어에서 같은 쿼리를 사용하고 적절한 행을 반환했기 때문에 매우 이상합니다. 이 문제를 어떻게 해결할 수 있습니까? 나는 문제가 보이지 않는다. 내가 직접 준비된 명령문 대신 변수에 "SELECT * FROM factions WHERE claims LIKE '%[-15,-3]%'"
를 사용하는 경우
UPDATE는
, 그것을 잘 작동합니다. 왜 문자열 변수를 사용할 수 없습니까? 내가 변수를 확인하고 잘 콘솔에 인쇄합니다.