2017-07-23 92 views
0

我创建了一个新字段,我需要根据现有字段对其进行更新。想知道如果MYSQL可以使用变量做到这一点,或者我必须使用PHP?由于该表是巨大的(300K +行,我认为其最好用查询本身是可以完成的)根据现有字段更新列

电流:

+-----+--------+--------------+ 
| pid | mfr |  pnum  | 
+-----+--------+--------------+ 
|  | MCAFEE | HIDYFM-AA-DA | 
+-----+--------+--------------+ 

预计:

+-----------------------+--------+--------------+ 
|   pid   | mfr |  pnum  | 
+-----------------------+--------+--------------+ 
| MCAFEE___HIDYFM-AA-DA | MCAFEE | HIDYFM-AA-DA | 
+-----------------------+--------+--------------+ 
+0

这不是一个新列,你只是更新现有列。您可以使用UPDATE语句。尽管如此,这将是一次性更新。如果你的要求比这更多,那么它需要一些澄清。 –

+0

@AndyG是的,它是我创建的一个字段,更新了描述。 – 3zzy

+0

如上所述,您可以执行一次性更新以将列更新为来自其他列的连接值。如果你打算为新行自动发生,你可以使用插入前的触发器。但是你需要这个*额外的*列吗?您可以为两列创建唯一索引,并在输出时仅显示连接的值。 –

回答

2

正好连接两个字段和集到pid

UPDATE table_name SET pid=CONCAT(mfr,"___",pnum) 
+0

正是我想要的,谢谢! – 3zzy

1

你可以通过mysql查询来做到这一点。这样

update example set pid = concat(mfr ,"__",pnum); 

其中例如是表名

相关问题