Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để sử dụng dấu ngoặc kép một cách chính xác khi sử dụng LIKE với biến tìm kiếm trong MySQL trong Java?

Sau đây là cú pháp chính xác để sử dụng LIKE với biến tìm kiếm -

String sqlQuery;
sqlQuery = "select *from yourTableName where yourColumnName like '%" +yourSearchVariableName + "%'";

Hãy để chúng tôi tạo một bảng -

mysql> create table demo19
−> (
−> id int not null auto_increment primary key,
−> name varchar(50)
−> );
Query OK, 0 rows affected (3.48 sec)

Chèn một số bản ghi vào bảng với sự trợ giúp của lệnh insert -

mysql> insert into demo19(name) values('John Smith');
Query OK, 1 row affected (0.15 sec)

mysql> insert into demo19(name) values('David Miller');
Query OK, 1 row affected (0.15 sec)

mysql> insert into demo19(name) values('Adam Smith');
Query OK, 1 row affected (0.12 sec)

mysql> insert into demo19(name) values('Chris Brown');
Query OK, 1 row affected (0.13 sec)

Hiển thị các bản ghi từ bảng bằng cách sử dụng câu lệnh select -

mysql> select *from demo19

Điều này sẽ tạo ra kết quả sau -

+----+--------------+
| id | name         |
+----+--------------+
|  1 | John Smith   |
|  2 | David Miller |
|  3 | Adam Smith   |
|  4 | Chris Brown  |
+----+--------------+
4 rows in set (0.00 sec)

Ví dụ

Sau đây là mã Java để sử dụng dấu ngoặc kép một cách chính xác trong khi sử dụng LIKE với biến tìm kiếm -

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class RemoveJavaQueryError {
   public static void main(String[] args) {
      Connection con = null;
      Statement statement = null;
      try {
         String searchKeyWord = "Smith";
         Class.forName("com.mysql.jdbc.Driver");
         con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sampledatabase", "root", "123456");
         statement = (Statement) con.createStatement();
         String sqlQuery;
         sqlQuery = "select *from demo19 where name like '%" + searchKeyWord + "%'";
         ResultSet rs = statement.executeQuery(sqlQuery);
         while (rs.next()) {
            System.out.println(rs.getString("name"));
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

Điều này sẽ tạo ra kết quả sau -

John Smith
Adam Smith

Sau đây là ảnh chụp nhanh của đầu ra mẫu.

Làm thế nào để sử dụng dấu ngoặc kép một cách chính xác khi sử dụng LIKE với biến tìm kiếm trong MySQL trong Java?