加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

SQL从查询中的数据中选择数据库中尚未存在的数据?

发布时间:2020-12-11 23:24:36 所属栏目:MySql教程 来源:网络整理
导读:我想在进行Web服务调用之前检查数据库中是否已记录的记录. 这是我想像的查询形式,我似乎无法弄清楚语法. SELECT * FROM (1,2,3,4) as temp_table WHERE temp_table.id LEFT JOIN table ON id IS NULL 有没有办法做到这一点?这样的查询是什么? 我想将ID的列

我想在进行Web服务调用之前检查数据库中是否已记录的记录.

这是我想像的查询形式,我似乎无法弄清楚语法.

SELECT * 
  FROM (1,2,3,4) as temp_table 
 WHERE temp_table.id 
LEFT JOIN table ON id IS NULL 

有没有办法做到这一点?这样的查询是什么?

我想将ID的列表传递给mysql,并希望它吐出数据库中尚未存在的ID?

最佳答案 为了确认我已正确理解,您想传递一个数字列表,看看现有表中不存在哪些数字?有效:

SELECT Item
FROM IDList I
    LEFT JOIN TABLE T ON I.Item=T.ID
WHERE T.ID IS NULL

您似乎可以随时建立此查询,在这种情况下,可以通过将上面的代码更改为

SELECT Number
FROM (SELECT Number FROM Numbers WHERE Number IN (1,4)) I
    LEFT JOIN TABLE T ON I.Number=T.ID
WHERE T.ID IS NULL

尽管由于查询的构建方式,这相对容易受到SQL Injection攻击.如果可以将“ 1、2、3、4”作为字符串传递并将其拆分为多个部分以生成数字列表以更安全的方式加入,则更好-有关如何执行此操作的示例,请参见http://www.sqlteam.com/article/parsing-csv-values-into-multiple-rows

所有这些假设都假设您的数据库中有一个数字/理算表,但是它们通常非常有用,因此我强烈建议您这样做.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读