Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

đánh giá biểu thức trong MySQL

Đây là một giải pháp tôi đã thực hiện để vui . Hãy xem xét giải quyết vấn đề này bằng một ngôn ngữ lập trình thực, nếu đây không phải là việc một lần nên làm.

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. Làm thế nào để điền vào một bảng với một phạm vi ngày?

  2. ORDER BY RAND () của MySQL hoạt động như thế nào?

  3. Cách tính tổng đang chạy cho mỗi nhóm trong MySQL

  4. Số lỗi:3780 Cột tham chiếu '% s' và cột tham chiếu '% s' trong ràng buộc khóa ngoại '% s' không tương thích

  5. MySQL đếm các giá trị duy nhất và trùng lặp