亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL 命令:在數據庫中搜索子字符串——返回匹配項 (Java)

MySQL 命令:在數據庫中搜索子字符串——返回匹配項 (Java)

精慕HU 2021-09-12 19:40:33
// Use case 1.    String authorName = "Wei She";    String query = "SELECT * FROM articles WHERE authors LIKE %?%";    PreparedStatement getAuthors = newConn.prepareStatement(query);    getAuthors.setString(1, authorName);    ResultSet resultSet = getAuthors.executeQuery();    while (resultSet.next()) {        String authors = resultSet.getString("authors");        System.out.println(authors);    }這是我的代碼的一個子集。數據已經在我本地的 MySQL 數據庫中了。其余的連接代碼存在。我的問題是:我應該如何格式化 Java 代碼中的 %?% 部分?有什么我想念的嗎?這是錯誤輸出。Exception in thread "main" java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/%'Wei She'/%' at line 1at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:975)at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1025)at src.TestSQLQuery.main(TestSQLQuery.java:34)我在 MySQL Workbench 中使用了一個類似的查詢:SELECT * FROM 文章 WHEREauthors LIKE '%Wei She%';上述查詢在 Workbench 中運行良好,并返回與其他作者以及“Wei She”一起的多個條目。
查看完整描述

1 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

%?%無效。您只需要使用?并將%值中的符號傳遞給PreparedStatement:


String query = "SELECT * FROM articles WHERE authors LIKE ?";


PreparedStatement getAuthors = newConn.prepareStatement(query);

getAuthors.setString(1, "%" + authorName + "%");


查看完整回答
反對 回復 2021-09-12
  • 1 回答
  • 0 關注
  • 298 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號