2011-03-10 54 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 | 
+------+