SQL更新到自动增量列

时间:2012-05-25 06:27:11

标签: mysql sql

我正在创建一个测试数据库。我有一堆列,我想“清除”敏感信息,以便我可以处理它。

id   email
1    email1@no-reply.com
2    email2@no-reply.com
#    email#@no-reply.com

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

我打算用Python做这件事,但是想在SQL中做这件事会更容易。

3 个答案:

答案 0 :(得分:2)

对于你的情况,它将是:

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

我只是在我自己的mysql表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 :(得分:1)

是的,如果您使用的是更新,则您应该已拥有该ID。如果它是php,它看起来像:

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

$query是您正在构建的查询字符串,$id是您用来引用记录的记录ID。

答案 2 :(得分: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 子句(如果给定)指定用于标识要更新的行的条件。使用 no WHERE 子句,所有行都会更新。如果指定了 ORDER BY 子句,则按指定的顺序更新行。 LIMIT 子句限制了可以更新的行数。