我正在創建一個測試數據庫。我有一堆專欄,我想'清除'敏感信息,以便我可以處理它。將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會更容易些。
我正在創建一個測試數據庫。我有一堆專欄,我想'清除'敏感信息,以便我可以處理它。將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會更容易些。
對於你的情況,這將是:
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
是的,如果你正在使用更新,你應該已經有了id。如果是PHP時,看起來像:
$query = 'Update email set email="email'.$id.'@no-reply.com where email.id='.$id;
哪裏$query
是你正在建設和$id
查詢字符串是你使用的引用記錄的記錄id。
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子句會限制可更新的行數。
'email = concat(「email」,table.id,「@ no-reply.com」)'? – hjpotter92