1

MySql テーブルは次のようになります。

    id    |        values   
  --------------------------------
    41    |    154, 256, 526, 50
    86    |    542, 586, 785, 41

このデータベースの値を、別の MySql クエリの結果の値と比較したいと考えています。その別のクエリから、特定のユーザーと valus の結果を取得します。次に例を示します。

user id: 41
values: 154,526,50

この2つのデータベースの「値」列を比較して、結果として異なる値の合計数と異なる値を取得するにはどうすればよいですか?

この例では、その PHP 関数の結果は次のようになります。

total number of different values: 1
different value: 256
4

3 に答える 3

3

データベースを正規化する。これらの値を別のテーブルに保存し、新しいカップリング テーブルを作成して、値をユーザーに接続します。これにより、開発が大幅に容易になります。

編集:クエリは次のようになります。

SELECT
    value
FROM
    couplings_table
WHERE
    user_id = X
AND
    value NOT IN (SELECT
                    value
                  FROM
                    couplings_table
                  WHERE
                    user_id = Y)
于 2012-07-09T12:59:24.070 に答える
2

array_diff を使用できます。

http://php.net/manual/en/function.array-diff.php

于 2012-07-09T13:01:41.733 に答える
1

「、」で展開し、array diffを使用するか、すべてのアイテムin_arrayを検索して、結果を使用します。array_diffはこれだけのものだと思います。

于 2012-07-09T13:09:38.607 に答える