簡體   English   中英

MySQL之類的查詢,用於在數據庫表中搜索子字符串

[英]MySQL like query for searching substring in a database table

我已將數據保存在MySQL數據庫表中。 我正在使用jTextField接受用戶輸入。 我想在用戶輸入子字符串是一部分的jtable中顯示行。

我試過的代碼:

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        try{

            Class.forName("com.mysql.jdbc.Driver");
            Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/date","root","");
            String query="SELECT * FROM ok where day like '%=?%'";
            PreparedStatement prepstmt=conn.prepareStatement(query);
           prepstmt.setString(1,jTextField2.getText());   // include this for showing only particular row else remove this line
            ResultSet rs=prepstmt.executeQuery(); 
            jTable1.setModel(DbUtils.resultSetToTableModel(rs));

        }catch(Exception e){

            JOptionPane.showMessageDialog(null, e);
        }

    } 

在我的情況下,要搜索的子字符串由用戶在jTextField1中輸入,而我想使用該用戶輸入。

請更正我的** String query =“”; **

相信圖書館會不會取代? 內部字符串。 您需要執行以下操作:

String query="SELECT * FROM ok WHERE day LIKE CONCAT('%', ?, '%')";

或者,您可以使用Java構建字符串:

String query="SELECT * FROM ok WHERE day LIKE ?";
PreparedStatement prepstmt = conn.prepareStatement(query);
prepstmt.setString(1, '%' + jTextField2.getText() + '%');

您可能要從用戶提供的字符串中刪除%_字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM