2011-03-10 43 views
0

我想编辑整个mysql表的行。编辑mysql表

我真的不知道MySQL的好,所以在基本编程这就是我想做的事:

从今年排在表视频:

这里的关键是,我想prepend 19/20,不添加它。

if (year < 50) 
    year = year+2000 
else 
    year = year+1900 

我该如何去做这件事?

+4

只需添加'1900'或'2000'而不是前面加上'“19”'或'“20”'? – 2011-03-10 06:53:58

+1

我认为你的意思是'year> = 50'。 – 2011-03-10 06:54:25

回答

3

试试这个:

UPDATE yourtable 
SET year = year + IF(year >= 50, 1900, 2000) 

这两个工作,如果你的列是一个整数类型并且如果它是字符类型。

+0

我试过这个,但我认为它倒退了。我得到了2089年和1911年(前)。 – switz 2011-03-10 06:57:13

+0

@Switz:我认为这是你的问题是倒退。 ;-)现在我已经更新了你所问的问题,而不是你实际询问的问题。你也应该改变你的问题。 – 2011-03-10 06:57:45

+0

哈!你有我。对不起:P – switz 2011-03-10 07:00:09

0
mysql> create table years (year int); 

// populate 
mysql> INSERT INTO years VALUES (50); 
mysql> INSERT INTO years VALUES (90); 
mysql> INSERT INTO years VALUES (40); 
mysql> INSERT INTO years VALUES (85); 

// update 
mysql> UPDATE years SET year = CASE WHEN year < 50 THEN 1900 + year ELSE 2000 + year END; 

// check 
mysql> SELECT * FROM years; 
+------+ 
| year | 
+------+ 
| 2050 | 
| 2090 | 
| 1940 | 
| 2085 | 
+------+