mysql - 如何将变量传递给 mysql 脚本?

标签 mysql variables scripting

我知道使用 mysql,您可以将 SQL 语句写入 .sql 文件并从 mysql 命令行运行该文件,如下所示:

mysql> source script.sql

如何将变量传递给脚本?例如,如果我想运行一个脚本来检索部门中的所有员工,我希望能够将部门编号作为变量传递。

我不想通过 shell 脚本运行查询。我从 mysql 命令行运行了一些简单的查询。我已经厌倦了一直重新输入它们,为它们编写一个 shell 脚本将是矫枉过正。

最佳答案

    #!/bin/bash

    #verify the passed params
    echo 1 cmd arg : $1
    echo 2 cmd arg : $2

    export db=$1
    export tbl=$2

    #set the params ... Note the quotes ( needed for non-numeric values )
    mysql -uroot -pMySecretPaassword \
    -e "set @db='${db}';set @tbl='${tbl}';source run.sql ;" ;

    #usage: bash run.sh my_db my_table
    #
    #eof file: run.sh

    --file:run.sql

    SET @query = CONCAT('Select * FROM ', @db , '.' , @tbl ) ;
    SELECT 'RUNNING THE FOLLOWING query : ' , @query ;
    PREPARE stmt FROM @query;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;

    --eof file: run.sql

您可以重复使用 from the following project 中的整个概念

关于mysql - 如何将变量传递给 mysql 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76065/

相关文章:

具有不同按钮的 Javascript 函数

bash - sudo echo "something">>/etc/privilegedFile 不起作用

php - 如何保证 PayPal 变量的安全

python - ANT 没有得到 python 脚本返回的退出代码

php - 创建具有一定半径的多边形

php - 从具有年份总记录的表中获取按月数据

java - 关于如何在 Java 程序中创建用户定义变量的想法?

c# - C# 中的私有(private)静态变量和线程安全

php - mysql/php : Update multiple rows

Mysql 在 600 万行表上的性能