您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> MYSQL >> 一个SQL的写法问题,求助

一个SQL的写法问题,求助

来源:网络整理     时间:2016/5/28 12:54:55     关键词:SQL,求助

关于网友提出的“一个SQL的写法问题,求助”问题疑问,本网通过在网上对“一个SQL的写法问题,求助”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:一个SQL的写法问题,求助
描述:

有一个结果集大概样式是这样 (1,2,3),有一张表t1:
mysql> select * from t1;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)
现在的需求是,选出结果集中1,2,3有但表中没有的数据,按照上面也就是选出结果是3,如果都是从表中选取就简单了,但一张表和一个结果集比较就难了,求助


解决方案1:

select * from (select substring('1,2,3',1,instr('1,2,3',',')-1)
union 
select substring(substring('1,2,3',instr('1,2,3',',')+1),1,instr(substring('1,2,3',instr('1,2,3',',')+1),',')-1)
union 

select substring(substring('1,2,3',instr('1,2,3',',')+1),instr(substring('1,2,3',instr('1,2,3',',')+1),',')-1)+1) r left join t1 t on r.a = t.a where t.a is null
类似这种,请参考~~

解决方案2:

select * from (result) r left join t1 t on r.a = t.a where t.a is null

解决方案3:

硬要通过SQL实现的话:(1,2,3)当做字符,截图处理,union合集,关联t1,(1,2,3)数值太多就不好办。PS:既然(1,2,3)是写死的,可以换种形式存储嘛,有时候模型合理,实现起来更简便。

解决方案4:

not in 但是好像效率不怎么样

解决方案5:

结果集是怎么产生的,查询表等到的吗?还是写死的?如果是查询表,可以用not exists 关键字

解决方案6:

存储过程还是代码里啊


以上介绍了“一个SQL的写法问题,求助”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1363194.html

相关图片

相关文章