我使用prepared语句执行mysql数据库查询。我想实现一个基于关键字排序的搜索功能。
为此我需要使用 LIKE
关键字,我知道那么多。我以前也用过准备好的语句,但我不知道怎么用 LIKE
因为从下面的代码中,我将在哪里添加 'keyword%'
?
我能直接用在厨房里吗 pstmt.setString(1, notes)
作为 (1, notes+"%")
或者类似的。我在网上看到很多关于这个的帖子,但是没有一个好的答案。
PreparedStatement pstmt = con.prepareStatement(
"SELECT * FROM analysis WHERE notes like ?");
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();
6条答案
按热度按时间wlzqhblo1#
您需要在值本身中设置它,而不是在准备好的语句sql字符串中。
因此,对于前缀匹配,应该这样做:
或后缀匹配:
或全球匹配:
6tdlim6h2#
编码如下:
请确保不要包含下面这样的引号“”,因为它们会导致异常。
2eafrhcq3#
我们可以使用
CONCAT
sql函数。这对我的案子很有效。
a7qyws3x4#
试试这个。
oo7oh9g95#
m528fe3b6#