MySQL NOT IN 运算符

标签 mysql toad notin

我有以下数据,其中包含 2 个不同的 TBL_ID - 337448 和 8612

"TBL_ID","PARAM_KEY","PARAM_VALUE"
 337448,"comment","CHANGE DUE"
 337448,"transient_lastDdlTime","1505760292"
 8612,"COLUMN_STATS_ACCURATE","true"
 8612,"numFiles","1"
 8612,"numRows","5294"
 8612,"rawDataSize","-1"
 8612,"totalSize","113217"
 8612,"transient_lastDdlTime","1452191300"

我需要查询所有不包含“numRows”的TBL_ID 我尝试过的:

SELECT * FROM TABLE_PARAMS 
WHERE PARAM_KEY NOT IN ('numRows')

结果:

"TBL_ID","PARAM_KEY","PARAM_VALUE"
 337448,"comment","CHANGE DUE"
 337448,"transient_lastDdlTime","1505760292"
 8612,"COLUMN_STATS_ACCURATE","true"
 8612,"numFiles","1"
 8612,"rawDataSize","-1"
 8612,"totalSize","113217"
 8612,"transient_lastDdlTime","1452191300"

它确实删除了带有 numRows 的列,但我需要删除整个 TBL_ID (8612)

最佳答案

你的问题有点模棱两可。 IN 运算符用于从结果集中查找数据。例如 2 IN {2, 3, 4}。

SELECT TBL_ID FROM  TABLE_PARAMS
WHERE PRAMAR_KEY='numRows'

如果您试图不显示任何与 numRows 关联的 ID,那么您必须首先获取要过滤的 ID,并且用户不等于。 例如,如果您尝试从您的集合中删除 8612 因为它是 Param_Key ='numRows' 的 ID 并且如果您尝试在 OPERATOR 中使用,那么

SELECT * FROM TABLE_PARAMS
WHERE TBL_ID NOT IN (SELECT TBL_ID FROM TABLE_PARAMS WHERE PARAM_KEY='numRows')       

关于MySQL NOT IN 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47840178/

相关文章:

php - 将 jQuery 日期转换为 php 日期或 mysql 日期以正确插入数据库

mysql - 修复意外存储为字符串的 MySQL JSON 数组

sql - SQL解决Toad中单元格顺序的解决方案

SQL SELECT .... NOT IN 查询

sql - 在 PostgreSQL 中使用 LEFT JOIN 而不是 NOT IN

php - 计数while循环,在特定的循环时间内做其他事情并继续while循环

mysql - 使用 memcached 和 mysql 搜索查询的最佳实践?

sql - 如何使用 TOAD、oracle 从表创建插入脚本?

mysql - 将两个键连接/合并为一个键并删除重复项

r - dplyr 过滤器语句不在 data.frame 的表达式中