1. 程式人生 > >mysql 刪除巢狀查詢的替代方式

mysql 刪除巢狀查詢的替代方式

mysql不支援刪除巢狀查詢。
比如如下語句:
想刪除一些髒資料

DELETE FROM merchandise WHERE  merchandise_id  NOT IN ( SELECT parent_id FROM merchandise WHERE is_union=0)

但是執行報錯。

這時可以使用臨時表:就是將資料先存入臨時表,用完後在刪除臨時表

CREATE TEMPORARY TABLE mytempSELECT  WHERE is_union=0DELETE FROM merchandise WHERE  merchandise_id  NOT IN (select
parent_id FROM mytemp);
drop table mytemp;

分成三條資料即可。
另外

selectFROM merchandise WHERE  merchandise_id  NOT IN ( SELECT parent_id FROM merchandise WHERE is_union=0)

如果巢狀的select查詢有null值,則此語句不起作用,

DELETE FROM merchandise WHERE  merchandise_id  NOT IN ( SELECT parent_id FROM merchandise WHERE
is_union=0 and parent_id is not null)

相關推薦

mysql 刪除查詢替代方式

mysql不支援刪除巢狀查詢。 比如如下語句: 想刪除一些髒資料 DELETE FROM merchandise WHERE merchandise_id NOT IN ( SELECT parent_id FROM merchandise WHE

MySQL查詢

定義我就不說了,子查詢就是內部的查詢,包含子查詢就是外部查詢!也就是說巢狀查詢一個是內部查詢一個是外部查詢,而且查詢是由內向外的。 提示一下:在group by和order by中的子查詢是沒有意義的! 子查詢的分類: 標量子查詢—返回單個值的查詢 列子查詢—返

MySQL查詢 查詢

子查詢:巢狀在其他查詢中的查詢。 有三張表分別如下: customers: 儲存顧客資訊 orderitems:只儲存訂單資訊,無客戶資訊 orders:儲存訂單號和顧客id   注意:一般在子查詢中,程式先執行在巢狀在最內層的語句,再執行外層。因此在寫子查

MySQL基礎(4)——子查詢查詢)、聯結表、組合查詢

本篇主要整理查詢表、聯結表的相關內容。 一、子查詢 MySQL 4.1版本及以上支援子查詢 子查詢:巢狀在其他查詢中的查詢。 子查詢的作用: 1、進行過濾: 例項1:檢索訂購物品TNT2的所有客戶的ID = + 一般,在WHERE

MySQL查詢(子查詢

巢狀查詢 定義:一個內層查詢語句(select-from-where)塊可以巢狀在另外一個外層查詢塊的where子句中,其中外層查詢也稱為父查詢,主查詢。內層查詢也稱子查詢,從查詢。子查詢一般不使用order by子句,只能對最終查詢結果進行排序。 另一種定義:在一個SEL

mysql必知必會--學習筆記(8)--子查詢 where查詢語句,作為計算欄位使用子查詢

1、子查詢的查詢過程一般是通過where中的in操作符來完成,in後面跟上一個子查詢,通常in之前的列名和子查詢查詢出來的列名是一致的。例如select name from book where id in (select book_id from store where s

mysql查詢

3.使用Exist和Not Exist引數 這裡的Exist和Not Exist用途及用法和在其他沒有什麼大的區別,我就簡單舉幾個範例好了: 範例一:      SELECT DISTINCT store_type FROM Stores                     WHERE EXISTS (S

mysql 查詢

1. SELECT typeName, NAME, money, down_Url, plug1.* FROM plug1 WHERE NAME IN ( SELECT NA

【筆記】Mybatis高階查詢(小結)--查詢及延遲載入

<association>與<collection>標籤一對一、一對多,多對多查詢時用到的屬性 property:對應實體類中的屬性名,必填項。 javaType:屬性對應的型別。 resultMap:可以直接使用現有

【筆記】Mybatis高階查詢(五)--使用resultMap的<collection>進行查詢及延遲載入

下面例子通過<collection>實現一個通過使用者編號查詢使用者下面的角色及許可權的需求,支援延遲載入。下面以自下而上的過程來實現這樣的巢狀查詢功能。並且這個自下而上的過程中每一個方法都是獨立可用的方法。上層的結果都以下層方法為基礎。所有物件都設定為延遲載入。

【筆記】Mybatis高階查詢(三)--使用<association>標籤實現查詢及延遲載入

<association>標籤實現巢狀查詢,需要用到以下屬性: select:另一個對映查詢的ID,Mybatis會額外執行這個查詢獲取巢狀物件的結果。 column:列名或別名,將主查詢中列的結果作為巢狀查詢的引數,配置方式如column=

QSL match_phrase 查詢

match_phrase 巢狀查詢 { "query": { "bool": { "should": [ { "match_phrase": { "body": { "quer

mysql update where子查詢實現方式

mysql的update的一些特點 1、更新的表不能在set和where中子查詢; 2、可以對多個表進行更新(sqlserver不行);   如:update ta a,tb b set a.Bid=b.id ,b.Aid=a.id;   3、update 後面可

Mongoose使用populate進行多表及深層查詢功能

mongoose populate 文件欄位說明 path «Object|String» 需要做表關聯的欄位路徑,或者包含所有引數的物件 [select] «Object|String» 表關聯查詢要選擇的欄位 [model] 

mybatis之查詢association和collection

Mybatis association是用於一對一和多對一,而collection是用於一對多的關係 一. Association 1. 巢狀查詢實現association一對一 public class Card implements Serializable{ private In

一種讀取類csv格式字串/列表字典字串的方式

原始碼: import java.io.*; import java.util.*; //給定一個含有csv格式的字串,讀取其中的資訊 public class readcsv { //格式字串 private static char c0=','; //字典字串

sql查詢再進行連線

SELECT * from ( SELECT * from tit_training_program WHERE level_id=#{levelId}) as p LEFT JOIN( se

mongoDB查詢

文件如下: {         "_id" : ObjectId("578f2122774326567ca82dfe"),         "person" : {                

mongodb多層查詢

> db.inventory.find( { "instock": { warehouse: "A", qty: 5 } } ) { "_id" : ObjectId("5943714f0429b8c7852eaf20"), "item" : "journal", "instock" : [ { "w

Mongodb查詢及修改

Mongodb各文件中對巢狀查詢的介紹不知道藏在哪個地方,反正我是沒找到,一個偶然的機會發現網上的一個帖子,終於知道了巢狀查詢的用法。於是乎我們應用中的一個問題也隨之被解決了。不說廢話了,現在說下巢狀查詢的使用。 假設mongodb中存在某個collections,其資料如