देखें, Recursive MySQL Query with संबंधपरक innoDB
मैंने कल उसी के लिए एक उत्तर पोस्ट किया था
अपडेट करें:
नीचे एक function
है उपरोक्त लिंक के आधार पर, लेकिन आपके DELETE
. के लिए तैयार किया गया है आवश्यकताएं
CREATE PROCEDURE `delete_relations`(`_id` INT)
BEGIN
DECLARE delete_row_ids varchar(200);
DECLARE id, id2 varchar(200);
DECLARE rows_affected int;
SET delete_row_ids = _id;
SET id = _id;
SET id2 = id;
WHILE id2 IS NOT NULL DO
SET id = NULL;
SELECT GROUP_CONCAT( hierarchical_data.id ), CONCAT( GROUP_CONCAT( hierarchical_data.ID ),',',delete_row_ids) INTO id, delete_row_ids FROM hierarchical_data WHERE FIND_IN_SET( parentid , id2 ) GROUP BY parentid ;
SET id2 = id;
END WHILE;
DELETE FROM hierarchical_data where FIND_IN_SET(hierarchical_data.id, delete_row_ids);
SELECT row_count() INTO rows_affected;
if rows_affected > 0 THEN
SELECT delete_row_ids as row_ids_deleted;
ELSE
SELECT 'NO_ROWS_DELETED';
END IF;
END//
उपयोग करें
CALL delete_relations(1)
id = 1 honda
. के लिए सभी प्रविष्टियों और उसके संबंधों को हटाने के लिए
आशा है कि यह मददगार होगा