为啥问号在 %% 内不起作用? [复制]
Posted
技术标签:
【中文标题】为啥问号在 %% 内不起作用? [复制]【英文标题】:Why is question mark not working inside %%? [duplicate]为什么问号在 %% 内不起作用? [复制] 【发布时间】:2021-04-09 06:20:02 【问题描述】:我使用java jdbc连接数据库sql server,但是%%
里面的问号不工作
这是我的代码:
public List<Account> findBetween(String search, int start, int size)
try
ArrayList<Account> list = new ArrayList<Account>();
String sql = "SELECT * FROM Account WHERE uname LIKE '%?%' ORDER BY user_id OFFSET ? ROWS FETCH NEXT ? ROWS ONLY";
Connection conn = ConnectDB.openConnection();
PreparedStatement st = conn.prepareStatement(sql);
st.setNString(1, search);
st.setInt(2, start);
st.setInt(3, size);
ResultSet rs = st.executeQuery();
System.out.println(rs.getFetchSize());
while (rs.next())
list.add(new Account(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getNString(4), rs.getNString(5),
rs.getNString(6), rs.getString(7), rs.getString(8), rs.getDate(9), rs.getInt(10),
rs.getBoolean(11)));
ConnectDB.closeConnection();
return list;
catch (Exception e)
e.printStackTrace();
ConnectDB.closeConnection();
return null;
【问题讨论】:
我找不到一个好的来源,但基本上准备好的语句参数需要是一个完整的值,所以你需要使用LIKE ?
并将%
字符添加到search
.
【参考方案1】:
绑定变量在字符串文字中不起作用。
你必须绑定整个字符串
uname LIKE ?
st.setNString(1, "%" + search + "%")
或使用字符串连接
uname LIKE '%' || ? || '%'
set.setNString(1, search)
请注意,在这两种情况下,search
中包含的任何其他通配符也将有效,因此如果这是直接用户输入,您可能需要先对其进行清理。
【讨论】:
它工作正常。谢谢以上是关于为啥问号在 %% 内不起作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
UIButton 在 UItableViewCell 内不起作用
扑。列 mainAxisAlignment spaceBetween 在 Row 内不起作用
swift isUserInteractionEnabled = false 在 UITapGestureRecognizer 内不起作用