Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql 动态sql

作者:影之哀伤   发布日期:2025-07-23   浏览:66

-- 动态SQL在MySQL中通常通过使用预处理语句(PREPARE、EXECUTE和DEALLOCATE)来实现。
-- 下面是一个简单的示例,演示如何根据用户输入动态生成并执行SQL查询。

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'MAX(CASE WHEN column_name = ''',
      column_name,
      ''' THEN column_value END) AS ',
      column_name
    )
  ) INTO @sql
FROM
  information_schema.columns
WHERE
  table_name = 'your_table_name'
  AND table_schema = 'your_database_name';

SET @sql = CONCAT('SELECT ', @sql, ' FROM your_table_name');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- 解释:
-- 1. 使用GROUP_CONCAT和CONCAT函数动态生成SQL查询字符串,并将其存储在@sql变量中。
-- 2. 使用PREPARE语句将动态生成的SQL字符串准备为可执行的语句。
-- 3. 使用EXECUTE语句执行准备好的语句。
-- 4. 使用DEALLOCATE PREPARE释放准备好的语句。

上一篇:docker拉取mysql镜像

下一篇:mysql8 忽略数据库大小写

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

mysql代码

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站