【问题标题】:insert an array into a single column将数组插入单个列
【发布时间】:2014-04-21 21:39:14
【问题描述】:

我在尝试创建发送消息功能时遇到问题。如果有多个接收者,似乎需要将一组用户 ID 添加到“接收者”字段中。我如何在 PHP 端和 MySQL 端处理这个问题?或者有什么进一步的建议?

【问题讨论】:

  • 您应该避免在单个字段中插入多个值。阅读first normal form
  • @putvande:我正在寻找一种特定的 PHP 方法。我已经考虑过你的建议了。
  • 但是为什么说好像需要加个数组。这不是您的数据库/功能吗?你能分享一些代码..让它更容易。
  • @putvande:我仍然不知道如何处理多个接收者的情况。在单个接收者的情况下,它非常简单,我只需要在“接收者”字段中插入一个 id。但是,当接收者为多个时,多行可能会导致消息内容重复。
  • 请向我们展示您的代码

标签: php mysql arrays database


【解决方案1】:

不,您不想插入数组。相反,插入多行。

INSERT INTO Message(id, recepient_id) VALUES (5, 12), (5, 13);

或类似的东西

【讨论】:

  • 在这种情况下,如果我按每一行进行查询,它将呈现多条消息。
  • “它”?如果您无法编写 PHP 代码来正确理解具有相同消息 ID 的多行属于一条消息,那么您可以尝试 SELECT id, GROUP_CONCAT(DISTINCT recepient_id SEPARATOR ',') FROM Message GROUP BY id 或类似的东西。
  • 我现在完全理解你的建议了。我认为如果您添加更多类似于此行的更多详细信息,您的答案可能会更好“多行具有相同的消息 id 作为属于一条消息”。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-10
  • 2023-03-18
相关资源
最近更新 更多