MySQL更新具有相同的表值

时间:2011-04-17 15:59:27

标签: mysql

我有一个名为“users”的MySQL表,其中包含“firstname”和“surname”列。表中有大约一千行。

我现在添加了另一个名为“search”的列,我想用一个空格分隔的名字和姓氏的值来填充它。例如,如果firstname = Bob和surname = smith,我想用“Bob Smith”填充“搜索”。

任何人都可以建议选择这些值并将其插入新列的更新语句吗?

最好的问候,本。

3 个答案:

答案 0 :(得分:4)

你可以简单地使用......

UPDATE users SET search=TRIM(CONCAT(firstname, ' ', surname));

作为解释,CONCAT简单地连接(合并)提供的字段/值,TRIM将删除任何前导或尾随空格,因此确保如果名字/姓氏或者名字没有问题确实两人都失踪了。有关这些函数的更多信息,请参阅MySQL String Functions manual page

但是,我很想调用新列“name”(或确实是“full_name”)而不是“搜索”,因为这最多只是一个有点误导性的字段名称。

答案 1 :(得分:0)

update users
set search = CONCAT(firstname, ' ', surname)

此脚本将更新它。

我不确定MySql,但是Sql Server允许您将字段设置为计算列。您可以将计算指定为“ISNULL(FirstName, ' ') + ' ' + ISNULL(Surname, ' ')”并将其设置为持久化,以便每次都不计算。在这种情况下,您不需要更新脚本<​​/ p>

答案 2 :(得分:0)

update `users` set `search` = CONCAT(`firstname`, ' ', `surname`);