2011-12-21 4 views
1

私は行に次のデータが含まれているテーブルがあります。だから私は自分自身の間でデータを比較し、どのデータが最大count.forを持っているかを示す必要があります。私のテーブルにはフルーツの名前がついています。ですから、私はこれらの果実を自分の中で比較し、最初に果物の最大数を示す必要があります。データベースの異なる行間の値を比較し、最大数を取得

s.no |    field1    | 
1 |apple,orange,pineapple   | 
2 |apple,pineapple,strawberry,grapes| 
3 |apple,grapes,     | 
4 |orange,mango     | 

つまり、リンゴが1番目に、ブドウが2番目に、3番目がパイナップルになります。これらのデータは動的に入力されるため、値が動的に入力された場合でも、それらを比較して最大カウントを取得する必要があります。

答えて

1

カラムフィールド1でクエリを実行する必要がある場合、normalizationを考慮するさもなければ、将来的に複雑で汚いことになるかもしれません。

現在のテーブルは、このようになります(Serianl番号1の場合のみ)、Pkは自動インクリメントの主キーになります。

Pk | s.no |fruitId| 
1 | 1  |1  | 
2 | 1  |2  | 
3 | 1  |3  | 

果物のあなたの新しい表は

PK |fruitName | 
1  |Apple  | 
2  |Orange  | 
3  |Pineapple | 

また、これは、重複を避けるために役立ちます。

+0

しかし、データが動的であれば、それらをどのように比較すればいいのですか。次に何のデータが入力されるのかわからなくなります。値が動的に入力された場合でも、それらを比較して最大カウントを得る必要があります – Sibu

2

偉大な質問です。

これはデータを正規化していないという古典的な悪い結果です。

私は、およそDatabase Normalizationを読んで、あなたのテーブルを正規化し、それが簡単なSQLでこれを行うことがいかに簡単で、その後参照することをお勧めいたしますが

+0

k tudor ..しかし、データが動的であれば、それらをどのように比較すればよいのですか.iデータが何に入力されるのかわからない。何か値が動的に入力されても、それらの間で比較して最大カウントを得る必要がある。 – Sibu

+0

Zohaibの回答を見る - それはデータを正規化するための非常に良いスタートです - それはまた、あなたの '問題' –

0

クイックソリューションは、あなたが挿入/行を更新果物の量を数えることになる問い合わせますfruitCount列を追加します。この列を使用して注文することができます。

Zohaibは、このような変更のための時間と可能性がある場合でも解決策を講じなければなりません。チューダーのリンクを読むことをお勧めします。

関連する問題