mysql 如何查询表中不存在的数据

表test 中有数据1,2,3
给定一个集合1,4
查询集合里在表中存在的数据sql为:select * from test where id in (1,4);
如何查询出集合里在表中不存在的数据(查询出4)
只读数据库,而且只能通过sql实现

需要查出(1=>值1,4=>空)这样的结果
能否用一条 sql 实现?

阅读 25.3k
3 个回答

题主是要这么玩?

select case when find_in_set(id,'1,4')<>0 then id else null end from test;

这样能找出哪些有值,剩下的都是没值,是不能连哪些没值的项目展示出来的,想要展示的话,首先你就得先把你的字符串拆分好,这就比较麻烦了

select * from test where id not in (1,2,3);

写个子查询就可以了啊

select * from test where id not in (select id from test where id in (1,4))

答主要的 1》值,4》没值,基本上就是要用连接了。
要么就是创建一张只有1,4的临时表,然后和上述sql做一个左连接,不然的话办不到。

如果有大神,还请指教。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏