【问题标题】:MySQL Move Table Contents To a Single Cell in Another TableMySQL 将表内容移动到另一个表中的单个单元格
【发布时间】:2013-09-20 18:05:39
【问题描述】:

好的,所以我有两张桌子。我们称它们为 test2test2history

test2 如下所示:
(来源:gyazo.com

test2history 如下所示:

我需要从表 test2 中提取多个单元格并将它们放入 test2history 中的一个单元格中。 test2 中的 week 列将设置为 test2history 中的 week 值。

test2 中的 day 列转换为:

  • 0 = 未设置
  • 1 = 星期一
  • 2 = 星期二
  • 3 = 星期三
  • 4 = 星期四
  • 5 = 星期五

在我正在处理的网站上,单击提交时,它应该从 test2 中提取所有单元格数据,其中周是 URL 中的 $_GET['week']。这很容易,我有。但是,它需要搜索它找到的行,然后将 'day' 值相同的 'map' 值放入 test2history 中相应的工作日。让我停在那里,因为我知道我解释它的方式令人困惑,让我给你一个视觉效果:

这就是我需要它的工作方式:

test2history 中的“total”列应设置为 test2 中具有相同周数的卡片的总和。我自己可以做到,我只是想确保您了解正在发生的事情。

我已经阅读了一些 group_concat() ,这似乎是我需要使用的,但我找不到与我需要它做什么相关的好的解释。这甚至可能不是我需要的。

我努力写的查询在任何形式或形式上都不正确,但我试过了,但我不知道如何处理这个问题,希望你们中的一个人这样做。感谢您的帮助。

【问题讨论】:

  • 这个想法确实很糟糕。你必须做的是创建另一个表,并保留结构。
  • 你甚至不知道它的用途,所以你对这个想法是好是坏没有任何意见。

标签: php mysql mysqli mysqli-multi-query


【解决方案1】:

我不久前使用 GROUP_CONCAT 解决了这个问题。

    UPDATE test2history SET monday = (SELECT group_concat(map, ' ', cards SEPARATOR ', ') FROM test2 WHERE test2.day=1 AND test2.week=$week)

我只是每天重复这个查询。

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    相关资源
    最近更新 更多