Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में सभी बाल पंक्तियों को कैसे खोजें?

देखें, 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//

SQLFiddle

उपयोग करें

CALL delete_relations(1)

id = 1 honda . के लिए सभी प्रविष्टियों और उसके संबंधों को हटाने के लिए

आशा है कि यह मददगार होगा



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump अवांछित सिस्टम टेबल डंप कर रहा है

  2. चालान तालिका डिजाइन

  3. टेक्स्ट या वर्चर का उपयोग करने के लिए कौन सा डेटाटाइप बेहतर है?

  4. MYSQL डेटाबेस में यादृच्छिक वर्ण सम्मिलित करना

  5. SQLAlchemy का उपयोग करके पांडा के साथ MySQL डेटाबेस को लिखना, to_sql