我是一个自学成才的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)。
这实际上可以在一个查询中完成,但它会比这复杂得多。