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

Sửa “ERROR 1054 (42S22):Cột‘ colname ’không xác định trong‘ mệnh đề thứ tự ”trong MariaDB

Nếu bạn gặp lỗi “ ERROR 1054 (42S22):Cột không xác định‘ colname ’trong‘ mệnh đề đặt hàng ’ ”Trong MariaDB, có thể bạn đang cố gắng tham chiếu đến một cột bí danh theo tên cột của nó.

Đây là một lỗi phổ biến khi chạy các truy vấn nối hai hoặc nhiều bảng. Nó cũng có thể xảy ra khi sử dụng các toán tử như UNION , INTERSECTEXCEPT .

Nói chung, nếu một cột có bí danh, thì bạn phải sử dụng bí danh đó trong bất kỳ ORDER BY nào mệnh đề tham chiếu đến cột đó.

Để sửa lỗi, chỉ cần tham chiếu cột theo bí danh của nó.

Ngoài ra, bạn có thể xóa hoàn toàn bí danh và tham chiếu trực tiếp đến tên cột.

Ví dụ về Lỗi

Dưới đây là một ví dụ về mã tạo ra lỗi:

(SELECT TeacherName t FROM Teachers)
EXCEPT
(SELECT StudentName FROM Students)
ORDER BY TeacherName ASC;

Kết quả:

ERROR 1054 (42S22): Unknown column 'TeacherName' in 'order clause'

Ở đây tôi không sử dụng bí danh trong ORDER BY mệnh đề dẫn đến lỗi.

Giải pháp 1

Một cách để khắc phục sự cố này là sử dụng bí danh trong ORDER BY mệnh đề:

(SELECT TeacherName t FROM Teachers)
EXCEPT
(SELECT StudentName FROM Students)
ORDER BY t ASC;

Kết quả:

+-------+
| t     |
+-------+
| Ben   |
| Cathy |
+-------+

Trong trường hợp này, bí danh trở thành tiêu đề cột trong kết quả.

Giải pháp 2

Một cách khác để làm điều đó là xóa hoàn toàn bí danh:

(SELECT TeacherName FROM Teachers)
EXCEPT
(SELECT StudentName FROM Students)
ORDER BY TeacherName ASC;

Kết quả:

+-------------+
| TeacherName |
+-------------+
| Ben         |
| Cathy       |
+-------------+

Lúc này, tên cột trở thành tiêu đề cột.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khắc phục “ERROR 1250 (42000):Không thể sử dụng bảng‘… ’từ một trong các SELECT trong mệnh đề ORDER” trong MariaDB

  2. 8 cách để thêm phút vào ngày giờ trong MariaDB

  3. Cách DATEDIFF () hoạt động trong MariaDB

  4. Cách NVL () hoạt động trong MariaDB

  5. Sử dụng MariaDB Flashback trên MySQL Server