Boa noite, estou fazendo uma pesquisa com o banco de dados em java, veja:
qr = cn.prepareStatement(sql);
qr.setInt(1, codigo);
ele pesquisa certinho porém ele pesquisa apenas se a variável código for idêntica ao do banco de dados(mysql), e queria que ele pesquisa-se um exemplo se a variável código tiver o valor ‘4’ queria que ele pesquisa-se todos os números que comecem com ‘4’ também ex: 4,41,42,49, se fosse uma string a variável eu usaria “%” e estaria resolvido o problema mas do tipo int estou tendo problemas.
Grato.
se você estiver usando preparedStatement não pode deixar o % na sua query.
outra coisa… não quero me intrometer heheh… mas se não for confidencial, você poderia falar o que esse campo guarda? você faz operações matemáticas com esse valor?
Ao que eu sei, LIKE só funciona com Strings, portanto, precisa de um tratamento “especial” para inteiros. Uma opção, que acredito que funcione, é algo do tipo:
SELECT * FROM p WHERE CAST(codigo AS TEXT) LIKE '123%'
Ou em código seria
String sql = "SELECT * FROM p WHERE CAST(codigo AS TEXT) LIKE '"+codigo+"%'";