我試圖從表中刪除數據和我的查詢刪除數據如下:得到錯誤#1242,而從表
delete from mybadge where uid=5 and badge_name=(select concat(tag_name,'-Beginner') from tag,post_tags where post_tags.tag_id=tag.tag_id);
我得到5個記錄SELECT語句,我想刪除所有那5條記錄。
我試圖從表中刪除數據和我的查詢刪除數據如下:得到錯誤#1242,而從表
delete from mybadge where uid=5 and badge_name=(select concat(tag_name,'-Beginner') from tag,post_tags where post_tags.tag_id=tag.tag_id);
我得到5個記錄SELECT語句,我想刪除所有那5條記錄。
使用 - '在'關鍵字,而不是'='簽署
delete from mybadge where uid=5 and badge_name in (select concat(tag_name,'-Beginner') from tag,post_tags where post_tags.tag_id=tag.tag_id);
你的子查詢,如你所說,返回5行。 但是,badge_name在同一行中不能有5個不同的值。這是一個有點像說:
delete from mybadge where uid=5 and badge_name=(5 different values)
嘗試
delete from mybadge where uid=5 and badge_name in (select concat(tag_name,'-Beginner') from tag,post_tags where post_tags.tag_id=tag.tag_id);
如果select語句工作正常給你那麼就刪除所有的UID通過選擇返回:
DELETE FROM mybadge WHERE uid IN(
SELECT uid
FROM mybadge
WHERE uid=5
AND badge_name=(SELECT concat(tag_name,'-Beginner')
FROM tag,post_tags
WHERE post_tags.tag_id=tag.tag_id)
);