MySQL动态SQL

MySQL动态SQL

MySQL的动态SQL指的是在运行时根据条件动态生成SQL语句的过程。实现动态SQL可以通过拼接字符串、使用条件判断和循环等方式来构建要执行的SQL语句。

数据示例

-- 示例表:employees
CREATE TABLE employees (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  age INT,
  salary DECIMAL(10, 2)
);

-- 动态插入数据
SET @id := 1;
SET @name := 'John';
SET @age := 28;
SET @salary := 5000.00;

SET @sql := CONCAT('INSERT INTO employees (id, name, age, salary) VALUES (', @id, ', ''', @name, ''', ', @age, ', ', @salary, ')');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- 动态查询数据
SET @id := 1;

SET @sql := CONCAT('SELECT * FROM employees WHERE id = ', @id , ' AND age = "15"');

SET @paramName:= '张三';

SET @sql := CONCAT('SELECT * FROM employees WHERE id = ',  '\'', @paramName,  '\'', ' AND age = "15"');


-- sql 预编译
PREPARE stmt FROM @sql;
-- 执行查询
EXECUTE stmt;

-- 释放语句
DEALLOCATE PREPARE stmt;

查询语句拼接

查询拼接语句

SELECT @sql;
用于查询拼接后的sql

引号拼接

'\''

结论

Mysql动态执行,关键点在于动态参数的拼接;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值