Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thứ tự đánh giá câu lệnh và gán biến trong MySQL UNIONs

Đừng UNION việc gán @col với các truy vấn khác của bạn.

Có một truy vấn để gán giá trị cho @col và một truy vấn riêng để đưa bản ghi đó vào kết quả của bạn.

SELECT @col := col AS col    -- Fetch particular record given a value of
  FROM tbl                   -- "col", assigning the identifier to @col.
 WHERE col = 'd'



SELECT col                   -- Now include the above record in the
  FROM tbl                   -- Final result-set
WHERE col = @col

UNION ALL

SELECT col                   -- Fetch the immediately preceding record,
  FROM (  SELECT col         -- ordered by "col"
            FROM tbl
           WHERE col < @col
        ORDER BY col DESC
          LIMIT 1) preceding

UNION ALL

SELECT col                   -- Fetch the immediately following record,
  FROM (  SELECT col         -- ordered by "col"
            FROM tbl
           WHERE col > @col
        ORDER BY col ASC
          LIMIT 1) following
ORDER BY col ASC;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Có thể THAM GIA một bảng dựa trên danh sách dữ liệu tĩnh, được cung cấp không?

  2. Tổng hợp dữ liệu theo khoảng thời gian trong MySQL

  3. Kết hợp các kết quả từ liên kết tất cả thành một hàng khi một số cột có các giá trị khác nhau

  4. Người dùng đa cấp trong bảng Cơ sở dữ liệu

  5. MySQL:Đếm bản ghi từ một bảng và sau đó cập nhật bảng khác