mysql 很简单的union链接查询保存
问题描述
问题解答
回答1:select * 这里 字段个数不确定, 这里的字段个数应该和你union all 后面查出来的字段个数是一样的才行。如果需要补位,就在union 后面加数字补位:
select column1,column2 from `products` where id in (select id from `products`) union all (select id,1 from `products`);回答2:
SELECT * FROM products WHERE id IN(SELECT id FROM products UNION ALL SELECT id FROM products) ;
我有点好奇,你为什么要这样写
回答3: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
不明白你想要什么
相关文章:
1. javascript - 小米浏览器中,图片导致fixed定位的元素无法显示2. mysql主从,从库锁表会导致复制阻塞吗?3. 为什么HTML5规范中会包含一些和html无关的东西?如本地存储等。4. javascript - 为什么!function foo(){}返回false,!function foo(){}()返回true?5. java - yuicompressor-maven-plugin 合并可用却不压缩, 哪配置不对?6. update方法不能更新字段值为0的数据7. word-wrap该如何使用?8. html - 特殊样式按钮 点击按下去要有凹下和弹起的效果9. javascript - ES5的闭包用ES6怎么实现10. mysql - 我用SQL语句 更新 行的时候,发现全部 中文都被清空了,请问怎么解决?
