2016-10-18 6 views
0

シリアル化されたIDフィールドから特定の会社に関連付けられているユーザーの数です。シリアル化されたフィールドからの総ユーザーを取得する方法を、シリアル化されたIDフィールドの合計ユーザー

SELECT * FROM table_user WHERE user_companies = 1 

しかし:私はINTフィールドを持っている場合は

TABLE_USER 
user_id 
user_name 
user_companies <- Serialized id field 

私はこの方法で値を得ることができますか? 任意の例では、データベースを使用する方法ではありません

TKSすべて

+0

あなたは本当にこれをしたくありません。データベースをスクラップし、正規化されたデータ構造を使用します。もしあなたができないのであれば、PHPで – WillardSolutions

+0

@Eatを実行する必要があります。もちろん、PHPでこれを行う必要がありますが、私は例を持っています:-) –

+0

何を試しましたか? PHPの 'unserialize()'関数を見ましたか? http://php.net/manual/en/function.unserialize.php – WillardSolutions

答えて

1

をいただければ幸いです。理想的には、ユーザーと企業との結合テーブルが必要です。結合することができる新しいテーブルを選択し、それをアンシリアル化して挿入するスクリプトを実行することは、それほど難しいことではありません。しかし、それは、それはあなたがPHPでそれをしなければならないですかだと仮定すると:

// SELECT * FROM table_user 

$company_id = 1; 

while($row = your_fetch_array()) { 
    if(in_array($company_id, unserialize($row['user_companies'])) { 
     $results[] = $row; 
    } 
} 

を結果配列でアンシリアライズ企業を取得するには:

while($row = your_fetch_array()) { 
    $companies = unserialize($row['user_companies']); 

    if(in_array($company_id, $companies) { 
     $results[] = array_merge($row, array('user_companies' => $companies)); 
    } 
} 

あなたのデータベースやAPIを言及し、そのクエリはありませんいつものようにフェッチしてください。

JSON(まだ推奨されていません)を使用している場合は、MySQL JSON Functionsからいくらかのマイレージが得られる場合があります。

関連する問題