我想在mysql存储过程中使用","
内爆查询结果。我怎么能这样做?
例如,
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
在此之后我想从临时表中获取所有“ID”并将其设置为以逗号分隔。
因为我需要像这样编写另一个查询
DELETE FROM main_table WHERE ids NOT IN (comma separated ids of temp table.)
所以任何身体都可以帮我解决如何使用逗号破坏临时表的ID?
由于
答案 0 :(得分:8)
看看GROUP_CONCAT function? 类似的东西:
SELECT GROUP_CONCAT(id ORDER BY id DESC SEPARATOR ',') FROM temp;
答案 1 :(得分:1)
我认为你可以这样做 -
DELETE mt FROM
main_table mt
LEFT JOIN temp t
ON mt.id = t.id
WHERE
t.id IS NULL;
此查询将删除main_table中临时表中不存在的所有记录。逗号分隔的ID不需要。