mysql 很简单的union链接查询保存
怪我咯
怪我咯 2017-04-17 15:47:56
[MySQL讨论组]
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
ringa_lee

select * 这里 字段个数不确定, 这里的字段个数应该和你union all 后面查出来的字段个数是一样的才行。
如果需要补位,就在union 后面加数字补位:


select column1,column2 from `products` where id in (select id from `products`) union all (select id,1 from `products`);
PHP中文网

SELECT * FROM products WHERE id IN(SELECT id FROM products UNION ALL SELECT id FROM products) ;

我有点好奇,你为什么要这样写

PHP中文网
SELECT * FROM `products` WHERE id IN(
  (SELECT `id` FROM `products`) 
    UNION ALL
  (SELECT `id` FROM `products`)
) ;

这个语句在逻辑上就存在问题, 或者说, union 完全没有实际作用, 连接的两张表是同已个表. 那结果就是把一张表的 ID 给复制了一份, 比如 products 有 id {1,2,3} 那么 union 的结果就是 id {1,1,2,2,3,3} 然后还拿这结果做 in 条件, 还是查询这张表, 那最终查询出来的结果还是 products 原来的数据, in 会匹配所有符合的记录, 重复的 ID 不会查出两条.

所以, 等价于

select * from products

不明白你想要什么

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号