试图重新排序一行中的条目


Trying to Reorder Entries in a Row

我是一个自学成才的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  |

希望这是有意义的,但请问如果不是。我已经找过了,似乎找不到解决这个问题的方法。

提前感谢!

我想不出一个不像小说那么长的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;

这并不能保证你第一次就能得到你想要的;您可能需要重复这一系列更新五到六次,以"涓滴"所有值(取决于有多少相邻的null)。

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