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

So sánh hai mảng có tên khóa khác nhau

Đặt bí danh cho một trong hoặc cả hai trường để chúng khớp với khóa một cách khôn ngoan:

$sql1 = "SELECT modname AS module FROM users_modules WHERE email='$email'";

Bây giờ có một khóa của module thay vì modname .

Bạn có thể sử dụng array_diff để tìm sự khác biệt giữa các mảng miễn là chúng có cấu trúc tương tự. Trong trường hợp của bạn, điều này sẽ xóa hai khóa khác khỏi truy vấn DB thứ hai của bạn.

Ví dụ:

$sql1 = "SELECT modname AS module FROM users_modules WHERE email='$email'";
$result1 = $conn->query($sql1);
while ($row = $result1->fetch_assoc()){
   $indMods[] = $row;
}

$sql2 = "SELECT module FROM modules WHERE level = '$level'";
$result2 = $conn->query($sql2);
while ($row2 = $result2 -> fetch_assoc()){
   $allMods[] = $row2;
}

$difference = array_diff($indMods, $allMods);

Tài liệu cho array_diff của PHP : http://php.net/manual/en/ Chức năng.array- diff.php

Lưu ý rằng có nhiều cách để làm điều này. Đây chỉ là mộ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. Truy vấn xếp hạng nhóm PHP MYSQL

  2. ID hàng được cập nhật lần cuối trong Mysql

  3. Không thể kết nối với MySQL bằng Sequelize

  4. Bạn có thể truy cập giá trị tăng tự động trong MySQL trong một câu lệnh không?

  5. Làm cách nào để tạo ràng buộc KIỂM TRA trong MySQL yêu cầu giá trị âm?