使用Javascript以给定格式提取数据

时间:2013-09-17 11:56:46

标签: javascript mysql database-design

+-------+---------+----------+---------------+-------------+-----+
| 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
  6. 使用JavaScript如何在不使用任何JavaScript库的情况下提取这样的数据?

1 个答案:

答案 0 :(得分:1)

我将此问题作为SQL问题回答,因为它标记为MySQL。

这是一种糟糕的数据格式。您应该有一个单独的关联表,每行serialfriend一行。

但是,如果你有一个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;