私のデータベースの1つの行の中の好き嫌いと中立性の数を計算するには?
データベースの1つの行から各Likeの数値を表示するにはどうすればよいですか?例えば
:データベースから画像を
Like = 1 Neutral = 2
私のデータベースの1つの行の中の好き嫌いと中立性の数を計算するには?
データベースの1つの行から各Likeの数値を表示するにはどうすればよいですか?例えば
:データベースから画像を
Like = 1 Neutral = 2
まず毎のような、データベースの行の中性から数値を与えることができるPHPのページに結果を与えるであろう
、あなたのテーブルを再設計する。私はあなたのためにこれを行いますが、将来の努力のためには実際に見てください。normalisation
代わりに、各回答ごとに1つの行があります。それはあなたのサンプルには表示されていませんが、あなたの行のどこかに存在すると仮定します。このような構成によると
+----+------+------------+------------------+
| Id | User | QuestionID | QuestionResponse |
+----+------+------------+------------------+
| 1 | 45 | 1 | Like |
| 2 | 45 | 2 | Neutral |
| 3 | 45 | 3 | Like |
| 4 | 46 | 1 | Dislike |
| 5 | 46 | 2 | Dislike |
+----+------+------------+------------------+
、あなたは、例えば、はるかに簡単に
カウントを実行することができます。
SELECT COUNT(QuestionResponse) FROM QuestionTable WHERE QuetstionResponse = 'Like'
特定のユーザーが必要な場合は、最後にAND UserID = 46
を追加します。
この表では、正規化が使用されています。データの重複があるため、ユーザーの詳細は別の表に格納されています。これらの行はすでに別の場所に存在するため、これらの行に個人情報を追加する必要はありません。結合を介してそのデータにアクセスできます。ユーザーテーブルが次のようになっているとします。
+----+----------+-----------+----------+
| Id | Username | FirstName | LastName |
+----+----------+-----------+----------+
| 45 | Fbloggs | Fred | Bloggs |
| 46 | Charray | Charlotte | Harray |
| 47 | Tmoseby | Ted | Moseby |
| 48 | Dknute | Deunan | Knute |
+----+----------+-----------+----------+
あなたは参加によってユーザー情報にアクセスできます。
SELECT Users.Username, Count(QuestionResponse) FROM table
INNER JOIN Users ON QuestionTable.User = Users.Id
WHERE QuestionResponse = 'Like'
これでしょう出力
+----------+-------+
| Username | Count |
+----------+-------+
| Fbloggs | 2 |
+----------+-------+
データベースの構造は何ですか?あなたはPHPやSQLで計算をしたいですか? –
私は1好きと2中立を参照してください...私は間違っていますか?また、画像の代わりに書式付きのテキストを掲示してください –
明らかに大型の 'SELECT case When This 'を書くことができますThisField =' Like 'then 1 else 0 end + CASE WHERE ThatField =' Like 'then 1 else 0 end + .. 「好き」として、そして同様に「中立者」として。しかし、このテーブル構造は非常によく、非リレーショナルなので、あなたはそのようなデザインで遠くに行くことはできません:-) –