Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Truy vấn với giá trị có dấu & hoạt động trong Oracle nhưng không trong MySQL?

Sử dụng biến người dùng (@) thay cho & trong MySQL

Oracle sử dụng &variable cho biến thay thế (substitution variable). MySQL sử dụng @variable (user-defined variable).

Cú pháp MySQL

SET @var1 = value1, @var2 = value2, @var3 = value3, ...;
INSERT INTO yourTableName VALUES (@var1, @var2, @var3, ...);

Ví dụ: Chèn dữ liệu sinh viên

Tạo bảng:

mysql> CREATE TABLE Student_Information (
    -> StudentId INT,
    -> StudentName VARCHAR(100),
    -> StudentAge INT,
    -> StudentMarks INT,
    -> StudentCountryName VARCHAR(10)
    -> );

Gán biến và chèn:

mysql> SET @Id = 10001, @Name = 'Carol', @Age = 23, @Marks = 89, @CountryName = 'US';
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO Student_Information VALUES (@Id, @Name, @Age, @Marks, @CountryName);
Query OK, 1 row affected (0.19 sec)

Kiểm tra:

mysql> SELECT * FROM Student_Information;

Kết quả:

+-----------+-------------+------------+--------------+--------------------+
| StudentId | StudentName | StudentAge | StudentMarks | StudentCountryName |
+-----------+-------------+------------+--------------+--------------------+
| 10001     | Carol       | 23         | 89           | US                 |
+-----------+-------------+------------+--------------+--------------------+

So sánh Oracle vs MySQL

Đặc điểmOracle (&)MySQL (@)
Ký hiệu biến&var_name@var_name
Phạm viSession (SQL*Plus)Session (connection)
Gán giá trịDEFINE var = valueSET @var = value
Sử dụng trong SQLWHERE col = &varWHERE col = @var

Lưu ý

  • Biến @ trong MySQL không cần khai báo trước, tự động tạo khi SET
  • Kiểu dữ liệu tự suy diễn từ giá trị gán
  • Có thể dùng trong stored procedure, trigger
  • Không dùng được trong prepared statement (cần dùng ? placeholder)