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

MySQL में अभिव्यक्ति का मूल्यांकन करें

यहाँ एक समाधान है जिसे मैंने मज़े . के लिए बनाया है . इसे एक वास्तविक प्रोग्रामिंग भाषा के साथ हल करने पर विचार करें, अगर यह एक बार की बात नहीं है।

drop table if exists Table1;
CREATE TABLE Table1
    (`a` int, `b` int, `expr` varchar(6))
;

INSERT INTO Table1
    (`a`, `b`, `expr`)
VALUES
    (2, 5, 'a+b'),
    (3, 4, 'a*b +3')
;

drop table if exists Table2;
CREATE TABLE Table2
    (`a` int, `b` int, `expr` int)
;

drop procedure if exists curdemo;
DELIMITER $$
CREATE PROCEDURE curdemo()
BEGIN
  DECLARE done INT DEFAULT 0;
  DECLARE seqel VARCHAR(255);
  DECLARE cur1 CURSOR FOR SELECT CONCAT('INSERT INTO Table2 (a, b, expr) SELECT a, b, ' , expr, ' FROM (SELECT ', a, ' as a, ', b, ' as b) sq;') FROM Table1;
  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

  OPEN cur1;

  REPEAT
    FETCH cur1 INTO seqel;
    IF NOT done THEN
       SET @sql:=seqel;
       PREPARE stmt FROM @sql;
       EXECUTE stmt;
       DEALLOCATE PREPARE stmt;
    END IF;
  UNTIL done END REPEAT;

  CLOSE cur1;
END $$
DELIMITER ;

CALL curdemo();

SELECT * FROM Table2;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या दक्षिण (Django के लिए) डेटाबेस में डेटा की पंक्तियों को सम्मिलित कर सकता है?

  2. सरणी तत्वों तक कैसे पहुँचें

  3. MySQL आंतरिक जुड़ाव से 1 पंक्ति का चयन करें

  4. MySQL वर्कबेंच का उपयोग करके MySQL को कैसे रोकें / प्रारंभ करें

  5. PHP डेटाबेस संचालित बहुस्तरीय मेनू