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

mysql union sai cột trong kết quả

Công đoàn hoạt động theo cột chức vụ Không tên. Nhưng bạn chưa chỉ định vị trí cột vì bạn đã * vì vậy, nó theo một số thứ tự do cơ sở dữ liệu chọn, nhưng không phải do bạn chọn.

Tên của tập kết quả cuối cùng là tên của các cột trong truy vấn đầu tiên trong liên hợp.

Cách khắc phục rất dễ dàng:Viết ra tên của tất cả các cột bạn muốn và đảm bảo giữ thứ tự nhất quán giữa cả ba truy vấn.

Các cột KHÔNG được sắp xếp theo tên (vì vậy việc đổi tên các cột sẽ không giúp ích được gì cho bạn), thứ tự là một số thứ tự nội bộ trong cơ sở dữ liệu.

Sử dụng * được coi là thực hành kém:Bạn không biết mình đang nhận được gì và nếu bạn chỉ cần một số cột thì hãy sử dụng * truy xuất nhiều dữ liệu hơn khi cần thiết, làm cho mọi thứ chậm hơn.

BTW Đặt tên cho các cột như thế này (theo số) là thực hành lập trình rất kém. Làm thế nào để bạn giữ mọi thứ thẳng thắn? Các cột của bạn có số, bảng của bạn có số. Bạn đang cố gắng viết mã bị xáo trộn? Để đảm bảo rằng không ai khác có thể làm việc trên mã của bạn? Bởi vì nếu bạn có, đây là một cách để làm điều đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hướng dẫn thiết kế cơ sở dữ liệu cho hệ thống mạng xã hội trong MySQL

  2. Buộc InnoDB kiểm tra lại các khóa ngoại trên một bảng / bảng?

  3. Kết nối MySQL và xung đột tiêu đề VC2010

  4. Cách chuyển đổi mảng MySQL JSON thành chuỗi được phân tách bằng dấu phẩy

  5. Chúng ta có thể đặt tên bảng dưới dạng tùy chọn trong MySQL không?