尝试重新排列行中的条目

时间:2016-08-09 17:48:24

标签: php mysql

我是一名(自学成才很差)的自学PHP开发人员,所以对我很轻松。 :)

我有一个工具,我试图创建它连续收集条目,并命令它们,以便NULL值最后在行的末尾。例如,如果我有一行看起来像这样

| LeaderID  | Person1 | Person2 | Person3 | Person4 | Person5 | Person6 |
|-----------|---------|---------|---------|---------|---------|---------|
|   1       |   NULL  |   5     |    8    |   NULL  |    9    |    11   |

我希望能够读取值的行并让它写回以下行:

| LeaderID | Person1 | Person2 | Person3 | Person4 | Person5 | Person6 |
|----------|---------|---------|---------|---------|---------|---------|
|    1     |   5     |   8     |    9    |   11    |   NULL  |   NULL  |

希望这是有道理的,但请问是否。我已经搜索过,似乎无法找到解决此问题的方法。

提前致谢!

1 个答案:

答案 0 :(得分:-1)

我想不出一个不会是小说长度的SELECT,但是这一系列的UPDATE可以用来(永久地)更改你的数据或者用在你的数据的临时副本上,以获得什么我想你想要。

UPDATE theTable SET Person1 = Person2, Person2 = NULL WHERE Person1 IS NULL;
UPDATE theTable SET Person2 = Person3, Person3 = NULL WHERE Person2 IS NULL;
UPDATE theTable SET Person3 = Person4, Person4 = NULL WHERE Person3 IS NULL;
UPDATE theTable SET Person4 = Person5, Person5 = NULL WHERE Person4 IS NULL;
UPDATE theTable SET Person5 = Person6, Person6 = NULL WHERE Person5 IS NULL;

这不能保证第一次通过你想要的东西;您可能需要重复这一系列更新五到六次以“涓流”所有值(取决于有多少相邻的空值)。

它实际上可以在一个查询中完成,但它会比这复杂得多。