2011-08-26 95 views
1

我想在我的mysql存儲過程中使用","來打亂查詢結果。我怎樣才能做到這一點?如何爆炸mysql5存儲過程中的查詢結果?

例如,

CREATE DEFINER=`root`@`%` PROCEDURE mysp() 

BEGIN 

    DROP TABLE IF EXISTS temp; 
    CREATE TABLE temp (ids INT(11) , typeid INT(11)); 

    INSERT INTO temp SELECT id,typeid FROM table_mine1 ..etc 

    INSERT INTO temp SELECT id,typeid FROM table_mine2 ..etc 

這個我想獲取從臨時表中所有的「IDS」,並使其爲逗號分隔後。

因爲我需要寫一個其他查詢這樣

DELETE FROM main_table WHERE ids NOT IN (comma separated ids of temp table.) 

所以任何機構可以幫助我如何使用逗號內爆我的臨時表的編號嗎?

感謝

回答

1

我認爲你可以做到這一點 -

DELETE mt FROM 
    main_table mt 
LEFT JOIN temp t 
    ON mt.id = t.id 
WHERE 
    t.id IS NULL; 

該查詢將刪除所有MAIN_TABLE記錄不以臨時表存在。用逗號分隔的ID不需要。