java - MySQL Java根据两个字符串列删除行

标签 java mysql sql

这是一行

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/

相关文章:

php - 使用 PHP 解析 PDF 文件以将值提交给 MySQL

php - 如何制作多表到一张表的join语句?

php - 在给定的时间跨度内发生了多少天

java - LWJGL - 调用了当前上下文中不可用的函数

java - 比较日历对象

mysql - 应用程序从 SQL 数据库检索特定时间的值

java sql查询错误

sql - AND 查询 m-to-n 表

java - 在 Java 中重复使用字符串中的字符的更好方法

Java:简单的递归函数只返回 1