MySQL 语法错误 INSERT INTO 和 WHERE 语句

MySQL Syntax Error INSERT INTO and WHERE statements

我创建了一个包含 4 列的数据库table

user , password , ipaddress , isVIP

我想将数据插入 ipaddress where user = ?和密码=?

我尝试使用这种 mySQL 语法

PreparedStatement ps = con.prepareStatement("INSERT INTO login(ipaddress) VALUES(?) select * from login where user=? and password=?");
        ps.setString(1,ipaddress);
        ps.setString(2,id);
        ps.setString(3, password);

它告诉我语法错误。

您的 INSERT 在句法上不正确。即使您修复了它,您的 INSERT 也不会工作,因为您正在选择并插入同一个 table!这在 mysql 中是不允许的。

您需要改用更新。

con.prepareStatement("UPDATE login SET ipaddress = ? WHERE user=? and password=?");

你可以试试下面的。

 PreparedStatement ps = con.prepareStatement("INSERT INTO login(ipaddress) VALUES select ipaddress from login where user=? and password=?");
            ps.setString(1,id);
            ps.setString(2, password);