[英]How to fetch all the records using the like query in mongodb using java
[英]fetch records with apostrophe in mysql using LIKE query
我有這樣的MYSQL查詢
String query="select DISTINCT sctName from snomedicd10map where sctName Like '" + search + "%" + "' LIMIT 5 ";
此查詢是自動完成的,如果在鍵入Apostrophe(')時搜索諸如代碼,女孩等之類的詞,則會發生空點異常
我該如何克服。 當用戶在文本字段中使用Apostrophe(')輸入名稱時,應獲取結果。
我從mysql數據庫中獲取了結果。
我怎樣才能做到這一點。
通常,當您使用硬編碼名稱時,您可以重復並轉義
Select * from Students where name like 'John O''Neal'
如果要使用它們,請對字符串進行清理或使用參數化的查詢。 查看准備好的語句。
您應該使用PreparedStatement
,這樣它將為您處理轉義。 例如:
try (PreparedStatement pstmt = Connection.prepareStatement("select DISTINCT sctName from snomedicd10map where sctName Like concat(?, '%') LIMIT 5") {
pstmt.setString(1, search);
try (ResultSet rs = pstmt.executeQuery()) {
// process result
}
}
或者(在代碼中處理通配符):
try (PreparedStatement pstmt = Connection.prepareStatement("select DISTINCT sctName from snomedicd10map where sctName Like ? LIMIT 5") {
pstmt.setString(1, search + "%");
try (ResultSet rs = pstmt.executeQuery()) {
// process result
}
}
JDBC驅動程序將自動處理轉義(或以不需要轉義的方式發送參數)
這就是我在原始評論中所建議的,是您嘗試過的嗎?
String query="select DISTINCT sctName from snomedicd10map where sctName Like '"
+ search.replaceAll("'", "\'") + "%' LIMIT 5 ";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.