问题描述
|
我有一个名为\“ users \”的MysqL表,该表具有\“ firstname \”和\“ surname \”列。表中有一千行左右。
现在,我添加了另一个名为\“ search \”的列,我想用姓氏和姓氏的值(以空格分隔)填充它。例如,如果firstname = Bob和firstname = smith,我想用\“ Bob Smith \”填充\“ search \”。
任何人都可以建议选择这些值并将其插入新列的更新语句吗?
最好的问候,本。
解决方法
您可以简单地使用...
UPDATE users SET search=TRIM(CONCAT(firstname,\' \',surname));
作为一种解释,“ 1”仅连接(合并)提供的字段/值,而“ 2”将删除任何前导或尾随空格,因此可以确保如果没有名字/姓氏或两者都丢失,则不会出现任何问题。有关这些函数的更多信息,请参见MySQL String Functions手册页。
但是,我很想将新列称为“名称”(或者实际上是“全名”)而不是“搜索”,因为这充其量是一个令人误解的字段名称。
,update users
set search = CONCAT(firstname,surname)
该脚本将对其进行更新。
我不确定MySql,但是Sql Server允许您将字段设置为计算列。您可以将计算指定为\“ISNULL(FirstName,\' \') + \' \' + ISNULL(Surname,\' \')
\”并将其设置为持久,这样就不会每次都进行计算。在这种情况下,您不需要更新脚本
,update `users` set `search` = CONCAT(`firstname`,`surname`);