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. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現存在即更新應該使用哪個標簽?2. mysql - 怎么生成這個sql表?3. mysql儲存json錯誤4. 哭遼 求大佬解答 控制器的join方法怎么轉模型方法5. mysql - 表名稱前綴到底有啥用?6. Navicat for mysql 中以json格式儲存的數據存在大量反斜杠,如何去除?7. 編輯成功不顯示彈窗8. 怎么php怎么通過數組顯示sql查詢結果呢,查詢結果有多條,如圖。9. mysql - 數據庫表中,兩個表互為外鍵參考如何解決10. sql語句 - 如何在mysql中批量添加用戶?
