如何與查詢刪除這樣與子查詢DELETE和LIKE
DELETE FROM tbl
WHERE title LIKE CONCAT((select title from tbl where id = 10),'%')
該查詢返回錯誤
[錯誤] 1093行 - 你不能指定目標表 '項' 的更新在 FROM子句
如何與查詢刪除這樣與子查詢DELETE和LIKE
DELETE FROM tbl
WHERE title LIKE CONCAT((select title from tbl where id = 10),'%')
該查詢返回錯誤
[錯誤] 1093行 - 你不能指定目標表 '項' 的更新在 FROM子句
DELETE t
FROM
tableX AS t
JOIN
(SELECT CONCAT(title, '%') AS titleL
FROM tableX
WHERE id = 10
) AS ti
ON t.title LIKE ti.titleL
這將工作。 – 2012-03-14 19:45:04
我覺得你剛剛從線,以執行一個選擇查詢插入另一:
DELETE t1
FROM tbl as t1
WHERE t1.title LIKE CONCAT((select title from tbl as t2 where t2.id = 10),'%')
這與OP的查詢不起作用的原因不一樣。 – 2012-03-14 19:43:32
這不起作用。它會給出完全相同的錯誤。 – 2012-03-14 19:45:36
更新了查詢,忘記了這個事情,這比加入 – ntziolis 2012-03-14 20:00:34
你需要的東西,如:
DELETE tbl
FROM tbl T1
INNER JOIN (SELECT title FROM tbl WHERE id = 10) T2
ON T1.title LIKE CONCAT(T2.title, '%')
有點簡單同樣的錯誤... [錯誤] 1093 - 您無法在FROM子句中指定目標表'條目'進行更新 – mort 2012-03-14 19:41:39
一個辦法來解決這個錯誤是其拆分成2個獨立的語句。
您可以選擇要匹配的標題放入用戶定義的變量中,然後執行刪除操作。
像這樣:
SELECT title
INTO @title
FROM tbl
WHERE id = 10;
DELETE FROM tbl
WHERE title LIKE CONCAT(@title,'%');
請注意,在MySQL Workbench中需要用於SELECT查詢語法如下: SELECT @title:=標題 FROM TBL WHERE ID = 10; – 2012-03-14 20:08:24
多少值是UR選取[回訪..? – Teja 2012-03-14 19:26:31