微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL使用相同的表值进行更新

如何解决MySQL使用相同的表值进行更新

| 我有一个名为\“ 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`);
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。