如何将行的值设置为上一行?

时间:2016-06-17 13:51:00

标签: mysql sql

我有一张这样的表:

// numbers 
+----+--------+
| id |  numb  |
+----+--------+
| 1  | zero   |
| 2  | one    |
| 3  | two    |
| 4  | three  |
| 5  | four   |
| 6  | five   |
| 7  | six    |
| 8  | seven  |
| 9  | eight  |
| 0  | nine   |
+----+--------+

现在我尝试将每行(仅numb列)的值复制/粘贴到上一列。所以这是预期的结果:

+----+--------+
| id |  numb  |
+----+--------+
| 1  | one    |
| 2  | two    |
| 3  | three  |
| 4  | four   |
| 5  | five   |
| 6  | six    |
| 7  | seven  |
| 8  | eight  |
| 9  | nine   |
| 0  | zero   |
+----+--------+

实际上我可以通过PHP做到这一点。我的意思是我可以获取所有行并移动一个itam然后更新它们。但我想知道我可以用纯mysql做到吗?

2 个答案:

答案 0 :(得分:2)

除了最大id之外的所有行都将更新。最大ID仍然会有相同的麻木。 (在这种情况下为System.setProperty("webdriver.chrome.driver","C:\\Users\\ABCD\\Desktop\\chromedRiver.exe"); WebDriver driver=new ChromeDriver(); driver.get("http://www.facebook.com"); driver.findElement(By.xpath(".//*[@id='email']")).sendKeys("xxx"); driver.findElement(By.xpath(".//*[@id='pass']")).sendKeys("xxx"); driver.findElement(By.xpath(".//*[@id='u_0_m']")).click(); Thread.sleep(2000); Alert alert=driver.switchTo().alert(); String msg= alert.getText(); System.out.println(msg); Thread.sleep(2000); alert.accept();

9,'eight'

Sample Fiddle

答案 1 :(得分:0)

也许像

How do I UPDATE from a SELECT in SQL Server?

并使用id + 1作为table2。