Java 在WHERE子句和类似语句中连接3列是否可行?

Java 在WHERE子句和类似语句中连接3列是否可行?,java,mysql,jdbc,Java,Mysql,Jdbc,我想在Java中使用MySQL进行这样的查询。我想制作一个类似于facebook的搜索栏,它不需要特定的列进行搜索,而是通过许多列进行搜索 DefaultTableModel model=(DefaultTableModel) table.getModel(); model.setRowCount(0); String key = searchbar.getText(); Connection con = Connect(); String sql="S

我想在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
子句中的术语合并在一起。如果你真的想要三个名字都匹配键的记录,那么用
替换

,我认为这样比较好