我有一个名为“users”的MySQL表,其中包含“firstname”和“surname”列。表中有大约一千行。
我现在添加了另一个名为“search”的列,我想用一个空格分隔的名字和姓氏的值来填充它。例如,如果firstname = Bob和surname = smith,我想用“Bob Smith”填充“搜索”。
任何人都可以建议选择这些值并将其插入新列的更新语句吗?
最好的问候,本。
答案 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`);