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

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

这是一种糟糕的数据格式。serial您应该有一个单独的关联表,每个和一行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 回答