在数据SQL的一个单元格中创建分隔的值


Creating delimited values in one cell of data SQL

我想创建一个朋友表,其中我有当前用户的userid,以及当前用户朋友的其他userid。

就像这样:

userid    friends
456       345; 745; 769;

我希望能够在当前用户每次获得好友时更新[插入新值后的旧值]此数据。

我已经看到了关于分隔符和内爆/爆炸数据的主题,但我似乎无法确定如何开始。

有什么想法吗?

重新考虑您的方法,并使用一个简单的表,每个用户id/好友对有一条记录。

userid    friends
456       345
456       745
456       769

这样可以很容易地从中选择和维护数据。

如果必须保持现有结构。添加好友:

  1. 查看当前好友列表中是否存在该好友

假设$rs['friends']包含345; 745; 769;,新好友ID为999

// remove trailing `;`
$friend_list = substr($rs['friends'], 0, strlen($rs['friends'])-1);
$friends = explode('; ', $friend_list);
if(in_array(999, $friends)) {
  // friend exists
} else {
  $friend_list .= '; 999;';
  // then save back to DB
}

但是,我建议使用关系表代替

嗯,我还在学习。你所有的意见都很有帮助。谢谢大家!我会考虑每一个问题,并寻找更多的想法。