java、mysql比较和编辑值

标签 java mysql comparison

我正在用 java 构建一个决策支持系统。下面是代码的一部分,它扫描用户输入的搜索词,然后将其与数据库 searchlog.searchcolumn 值进行比较,如果该词不存在,则创建一个新条目。但在 if 语句中,我希望它检查该条目,并且如果它已经在 searchlog.searchcolumn 列中,那么我希望它不创建新的重复条目,而是为 searchlog.counter 列添加 +1 值具体词。 例如,如果搜索词是“UMBRELLA”并且数据库中已经有一个雨伞条目,我希望它向 UMBRELLA 行中的计数器列添加 +1。

这样做的目的是存储所有搜索词并跟踪最流行的搜索词。 感谢您的时间 String CheckSearch = "从搜索日志中选择搜索列";

String InsertColumn = "INSERT INTO `mydb`.`searchlog` (`searchcolumn`) VALUES ('"+ InputScanner + "'); 
         //
if (InputScanner.equals(CheckSearch)) 
   System.out.println("value ealready exist, counter well be updated"); 
else
   stmt.executeUpdate(InsertColumn); 

编辑 感谢您使用PreparedStatement 的建议,但这是我的第一个或多或少严重的挑战,这一次,让我们忽略我的代码的漏洞。谢谢

最佳答案

您使用什么数据库?如果您使用的是 MySQL,那么您应该查看 INSERT ... ON DUPLICATE KEY UPDATE 语句。 (其他 SQL 数据库有 MERGE,我不太熟悉。)这是 MySQL Documentation .

您需要将您的 searchcolumn 设为 UNIQUEPRIMARY 列,然后执行以下操作:

INSERT INTO searchlog (searchcolumn, count) VALUES ("my search query", 0) ON DUPLICATE KEY UPDATE count = count + 1;
会实现你想要的。

关于java、mysql比较和编辑值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13753706/

相关文章:

mysql - COUNT 与 IF FROM DISTINCT 值 MySQL

mysql - Rails 4 Carrierwave 和 mysql 无法将 nil 转换为 String

php - 如何与 MySQL 比较(最小和最大)浮点值?

python - 如何比较两个文件并打印仅与第一个文件匹配的第二个文件

java - 显示 Hibernate SQL 的 Logback 记录器必须大写

java - 如何在 Spring Integration 中轮询时根据主题过滤电子邮件

java - 从联系人姓名而不是数字解析 URI 号码

java SunPKCS11 多个 etokens(智能卡)同时,找不到提供者错误

java - 如何避免 c3po 中的连接超时?

mysql - 需要知道 Between 和 like 是否可以一起使用或者在 sql 中更好