3
+-------+---------+----------+---------------+-------------+-----+
| serial| amount  | NameOfMyFriends                              |
+-------+---------+----------+---------------+-------------+-----+
|     1 | 1500.00 | FOOBAR1, FOOBAR2, FOOBAR3, FOOBAR4, FOOBAR5, |
|     2 | 2000.00 | FOOBAR1, FOOBAR3, FOOBAR4, FOOBAR5,          |
|     3 |  300.00 | FOOBAR1, FOOBAR2,                            |
|     4 |  600.00 | FOOBAR2, FOOBAR4,                            |
|     5 |  900.00 | FOOBAR4, FOOBAR5,                            |
|     6 |  800.00 | FOOBAR2, FOOBAR5,                            |
|     7 |  600.00 | FOOBAR1, FOOBAR3,                            |
+-------+---------+----------+---------------+-------------+-----+

次のようなそれぞれのシェアを見つける必要があります。

  1. FooBar1 のシェア: 300 + 500 + 150 + 300 ===> 1250
  2. FooBar2 のシェア : 300 + 500 + 150 + 300 + 400 ===> 1650
  3. FooBar3 のシェア : 300 + 500 + 300 ===> 800
  4. FooBar4 のシェア : 300 + 500 + 300 + 450 + ===> 1550
  5. FooBar5 のシェア : 300 + 500 + 450 + 400 ===> 1650

JavaScript ライブラリを使用せずに、JavaScript を使用してこのようなデータを抽出するにはどうすればよいですか?

4

1 に答える 1

1

MySQL のタグが付けられているため、これは SQL の質問として回答しています。

これはひどいデータ形式です。serialと ごとに1 つの行を持つ別の関連付けテーブルが必要friendです。

ただし、friendsテーブルがある場合は、MySQL を使用して必要なものを取得できます。

select f.FriendName, sum(eachVal)
from YourTable t join
     Friends f
     on find_in_set(f.FriendName, t.NameOfMyFriends) > 0
group by f.FriendName;
于 2013-09-17T12:04:37.883 に答える