如何將變數傳遞給 MySQL 指令碼?


可以使用會話變數將變數傳遞給 MySQL 指令碼。首先需要使用 SET 命令設定會話變數。之後需要將該變數傳遞給 MySQL 指令碼。

語法如下 −

第一步:使用 Set 命令。

SET @anyVariableName − = ’yourValue’;

第二步:將變數傳遞給 MySQL 指令碼。

UPDATE yourTableName SET yourColumnName1 = yourColumnName1+integerValue WHERE yourColumnName2 = @anyVariableName;

為了理解以上語法,讓我們建立一個表。建立表的查詢如下 −

mysql> create table Employee_Information
   -> (
   -> EmployeeId int NOT NULL AUTO_INCREMENT,
   -> EmployeeName varchar(20) NOT NULL,
   -> EmployeeSalary int,
   -> EmployeeStatus varchar(20),
   -> PRIMARY KEY(EmployeeId)
   -> );
Query OK, 0 rows affected (0.53 sec)

現在可以使用 insert 命令向表中插入一些記錄。查詢如下 −

mysql> insert into Employee_Information(EmployeeName,EmployeeSalary,EmployeeStatus) values('Sam',17650,'FullTime');
Query OK, 1 row affected (0.13 sec)

mysql> insert into Employee_Information(EmployeeName,EmployeeSalary,EmployeeStatus) values('Carol',12000,'Trainee');
Query OK, 1 row affected (0.18 sec)

mysql> insert into Employee_Information(EmployeeName,EmployeeSalary,EmployeeStatus) values('Bob',17650,'FullTime');
Query OK, 1 row affected (0.20 sec)

mysql> insert into Employee_Information(EmployeeName,EmployeeSalary,EmployeeStatus) values('Mike',12000,'Trainee');
Query OK, 1 row affected (0.14 sec)

mysql> insert into Employee_Information(EmployeeName,EmployeeSalary,EmployeeStatus) values('John',17650,'FullTime');
Query OK, 1 row affected (0.16 sec)

使用 select 語句顯示錶中的所有記錄。

mysql> select *from Employee_Information;

以下是輸出 −

+------------+--------------+----------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary | EmployeeStatus |
+------------+--------------+----------------+----------------+
|          1 | Sam          |          17650 | FullTime       |
|          2 | Carol        |          12000 | Trainee        |
|          3 | Bob          |          17650 | FullTime       |
|          4 | Mike         |          12000 | Trainee        |
|          5 | John         |          17650 | FullTime       |
+------------+--------------+----------------+----------------+
5 rows in set (0.00 sec)

以下是將變數傳遞給 MySQL 指令碼的查詢 −

mysql> set @EmpStatus − = 'FullTime';
Query OK, 0 rows affected (0.03 sec)

mysql> update Employee_Information set EmployeeSalary = EmployeeSalary+6500 where EmployeeStatus = @EmpStatus;
Query OK, 3 rows affected (0.18 sec)
Rows matched − 3 Changed − 3 Warnings − 0

現在再次使用 SELECT 語句檢查表記錄。對於全職的員工,我將 EmployeeSalary 增加 6500。

查詢如下 −

mysql> select *from Employee_Information;

以下是輸出 −

+------------+--------------+----------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary | EmployeeStatus |
+------------+--------------+----------------+----------------+
|          1 | Sam          |          24150 | FullTime       |
|          2 | Carol        |          12000 | Trainee        |
|          3 | Bob          |          24150 | FullTime       |
|          4 | Mike         |          12000 | Trainee        |
|          5 | John         |          24150 | FullTime       |
+------------+--------------+----------------+----------------+
5 rows in set (0.00 sec)

更新於: 07-30-2019

4 千+ 瀏覽

啟動您的事業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.