这是一行
PreparedStatement delete = con.prepareStatement("DELETE FROM " + tableName +" WHERE first LIKE " + firstName + " AND last LIKE " + lastName);
我想在删除行之前检查名字和姓氏是否与查询匹配。 “第一个”和“最后一个”都是我表中的列。 我收到此错误消息
org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (no such column: Hendrix)
在本例中,Hendrix 是 lastName
的值。
为什么最后一个 LIKE ____ 在这种情况下不起作用?如果我要检查,是否应该使用另一个关键字 多个字符串?
最佳答案
In Java, you can escape quotes with \ :
PreparedStatement delete = con.prepareStatement("DELETE FROM " + tableName + " WHERE first = \"" + firstName + "\" AND last = \"" + lastName + "\"");
当然,我发现有点难以阅读,所以我更喜欢混合使用单引号和双引号而不是转义它们:
PreparedStatement delete = con.prepareStatement('DELETE FROM ' + tableName + ' WHERE first = "' + firstName + '" AND last = "' + lastName + '"');
关于你关于LIKE的问题。 Try reading up on the difference between LIKE and = 。有很多关于它的信息。简而言之...LIKE 与通配符一起使用。
关于java - MySQL Java根据两个字符串列删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58925882/