sql >> データベース >  >> RDS >> Mysql

キー名が異なる2つのアレイを比較する

    片方または両方のフィールドにエイリアスを付けて、キーごとに一致させます。

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

    これで、moduleのキーがあります modnameではなく 。

    array_diffを使用できます 配列が類似している限り、配列間の違いを見つけることができます。あなたの場合、これは2番目のDBクエリから他の2つのキーを削除することになります。

    例:

    $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);
    

    PHPのarray_diffのドキュメント : http://php.net/manual/en/function.array- diff.php

    これを行うには多くの方法があることに注意してください。これは1つだけです。



    1. MySQLでINT(1)とTINYINT(1)を使用することに違いはありますか?

    2. HAProxyからProxySQLに移行するためのヒント

    3. MySQL DBは、ウムラウトがある場合とない場合のレコードを選択します。例:'..ここで何か=FÖÖ'

    4. 2つのEloquentコレクションをマージして並べ替えますか?