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

Chọn cột theo bí danh trong MySQL

Câu trả lời ngắn gọn:

  1. tham chiếu đến bí danh trong danh sách CHỌN hoặc
  2. Biểu thức bí danh

Tài liệu duy nhất tôi tìm thấy về vấn đề này cho đến nay là: https:// bug .mysql.com / bug.php? id =79549

Trong liên kết đó có nội dung sau:

[9 tháng 12, 2015 15:35] Roy Lyseng ... Đây là thông tin cơ bản dài hơn cho quyết định ban đầu:

Trái ngược với tham chiếu đến bí danh trong truy vấn con trong mệnh đề WHERE (và trong GROUP BY, cho vấn đề đó), không có lý do gì (ngoại trừ tuân thủ tiêu chuẩn) mà chúng tôi không cho phép tham chiếu đến bí danh trong danh sách CHỌN , vì chúng sẽ có sẵn trong cùng một giai đoạn thực thi truy vấn. Nhưng hỗ trợ trong 5.6 khá tùy tiện:

Cho điều này:tạo bảng t1 (a int, b int),

Bí danh trong danh sách CHỌN không hợp lệ:

  select a+b as c,c+1 from t1;

Nhưng trong một truy vấn con, tham chiếu đến c là hợp lệ:

  select a+b as c,(select c+1) from t1;

Và truy vấn con phải đứng sau định nghĩa của bí danh:

  select (select c+1),a+b as c from t1;

Vì vậy, có thể dễ dàng nói rằng hỗ trợ tham chiếu đến bí danh trong danh sách CHỌN khá đặc biệt. Tuy nhiên, chúng tôi sẽ cố gắng thực hiện lại giải pháp cũ, nhưng không cố gắng làm sạch các lỗ hổng rõ ràng trong hỗ trợ cho tính năng này. Nhưng bí danh tham chiếu trong các truy vấn con trong mệnh đề WHERE sẽ không được thực hiện lại.

Tôi vẫn đang tìm kiếm tài liệu ngoài báo cáo lỗi mô tả chức năng này trong các tài liệu tiêu chuẩn; nhưng cho đến nay không có may mắn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đọc tệp văn bản được phân tách bằng tab vào bảng MySQL bằng PHP

  2. MySQL Workbench có tự động tạo chỉ mục cho các khóa ngoại không?

  3. Kết nối PDO cơ bản với MySQL

  4. Làm cách nào để đếm tất cả các hàng khi sử dụng SELECT với LIMIT trong truy vấn MySQL?

  5. xóa bằng cách sử dụng ở đâu và hoặc