Java预处理语句中的通配符问题

时间:2015-02-02 19:36:57

标签: java mysql sql

我目前很困惑在使用数据库中的select时如何为long值设置通配符。目前我有:

preparedstatement= conn.prepareStatement("SELECT * FROM database WHERE LONGVALUES LIKE ? ");

preparedstatement.setLong(1, aLongValue);

我目前很困惑如何使用外卡来获得我想要的结果。我想要选择的是来自该数据库的所有值,其LONGVALUES列包含数字aLongValue。因此,如果52位于数据库中,则输入52会选择它。

2 个答案:

答案 0 :(得分:1)

您无法对数值进行LIKE。它必须是一个字符串,因此您应该使LONGVALUES为VARCHAR字段,或者使用标量函数将值转换为符合的字符串,即

SELECT * FROM database WHERE TO_CHAR(LONGVALUES) LIKE ?;

答案 1 :(得分:-1)

要使用LIKE,你的aLongValue应该是一个varchar,那么你可以运行一个...其中longvalues如'%5%'