2012-05-25 54 views
1

我正在創建一個測試數據庫。我有一堆專欄,我想'清除'敏感信息,以便我可以處理它。將SQL更新爲自動增加列

id email 
1 [email protected] 
2 [email protected] 
# email#@no-reply.com 

basicall我想要做的做UPDATE table SET email = "email" + id + "@no-reply.com

我要做到這一點在Python,但認爲這樣做在SQL會更容易些。

+2

'email = concat(「email」,table.id,「@ no-reply.com」)'? – hjpotter92

回答

2

對於你的情況,這將是:

UPDATE table 
SET email = CONCAT("email", id, "@no-reply.com"); 

我只是用它自己的數據庫表late。下面是結果:

mysql> update late 
    -> set msg = concat(id, " ", msg); 
Query OK, 74397 rows affected (4.15 sec) 
Rows matched: 74397 Changed: 74397 Warnings: 0 
1

是的,如果你正在使用更新,你應該已經有了id。如果是PHP時,看起來像:

$query = 'Update email set email="email'.$id.'@no-reply.com where email.id='.$id; 

哪裏$query是你正在建設和$id查詢字符串是你使用的引用記錄的記錄id。

0
UPDATE table_reference 
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... 
[WHERE where_condition] 
[ORDER BY ...] 
[LIMIT row_count] 

對於單表的語法,在用新值命名錶中的現有行UPDATE語句更新列。子句SET子句指示要修改哪些列以及應該給出哪些值。每個值都可以作爲表達式或關鍵字DEFAULT將列明確設置爲其默認值。 WHERE子句(如果給出)指定標識要更新哪些行的條件。使用否WHERE子句,將更新所有行。如果指定了ORDER BY子句,則按照指定的順序更新行。 LIMIT子句會限制可更新的行數。