我想使用 Java 中的 MySQL 进行这样的查询。我想制作一个类似于 facebook 的搜索栏,不需要特定的列来搜索,而是通过许多列进行搜索。
DefaultTableModel model=(DefaultTableModel) table.getModel();
model.setRowCount(0);
String key = searchbar.getText();
Connection con = Connect();
String sql="Select * from table1 WHERE Surname,Middlename,Firstname LIKE ?";
PreparedStatement statement = con.prepareStatement(sql);
statement.setString(1, "%" +key+ "%");
ResultSet result = statement.executeQuery();
我如何实现这样的目标?提前致谢!
最佳答案
您当前的语法将不起作用,但您没有理由不能将 LIKE
表达式重复三次,每列一次:
String sql = "SELECT * FROM table1 WHERE Surname LIKE ? OR ";
sql += "Middlename LIKE ? OR Firstname LIKE ?";
PreparedStatement statement = con.prepareStatement(sql);
statement.setString(1, "%" + key + "%");
statement.setString(2, "%" + key + "%");
statement.setString(3, "%" + key + "%");
来自@SBF的编辑我已将您的WHERE
子句中的术语组合在一起。如果您确实想要所有三个名称都与键匹配的记录,请将 OR
替换为 AND
。
关于java - 在 WHERE 子句和 LIKE 中连接 3 列是否可以实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47034611/