mysql - 计算第一个数据库表的列中单词的实例并将其添加到另一个表的行中?

标签 mysql sql database

我有两个 MySQL 数据库表:'header' 和 'lookup'。

我的“ header ”表中有一个名为“协议(protocol)”的字段,如果我运行我的数据包捕获引擎,将在其中填充数据。而且,我还有“信息”字段,它会在其中显示消息的类型(例如,Type 135/Type 137 等) 因此,该字段将包含不同类型的协议(protocol)。

我想做的是:

  1. 我想计算第一个表(标题)中特定类型消息的实例。例如,我想计算特定协议(protocol)具有类型 135(将显示在信息中)的实例。 这是对的吗?如果没有,请提供正确的 SQL。

    SELECT COUNT(info) FROM project.header WHERE info="Type 135";
    
  2. 接下来我要做的是插入数字 在第一个表中的“信息”字段中出现到“count1”字段中 另一个名为“查找”的表。

    例如, 如果第一个表中总共有 5 个 Type 135 消息实例,我想将数字(此处为 5)插入到第二个表字段(count1)的相应字段中,插入到我创建为“Type 135”的行中。

请务必向我提供实现此目的的步骤。

最佳答案

如果 info 中不存在该行,则使用 insert。但是,我猜该行确实存在,因此您将更新与相关子查询一起使用:

update lookup l
    set count1 = (select count(*)
                  from project.header h
                  where h.info = l.info
                 );

如果您只想更新一行,您可以添加 where l.info = 'Type 135'

关于mysql - 计算第一个数据库表的列中单词的实例并将其添加到另一个表的行中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35545107/

相关文章:

php - 不能赋负值

php - Codeigniter 多数据库连接中遇到错误

MySQL Case 语句 - 未知列在哪里

sql - 更新 MySQL 中的关联表

MySQL 唯一行

c# - 在 MVC3 中使用 ADO.NET MySQL Provider(无法找到请求的 .Net Framework Data Provider。可能未安装。)

java - EC2 到 RDS 连接失败,但本地主机到 RDS 工作

sql - 如何使用倒数第二个结果更新最后一条记录 [SQL Server]

mysql - 使用 MySQL 中的子查询减去一周前的数据

java - 如何在 Java 中连接到 Cloud Foundry MySQL 数据库连接?