You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite中如何用fname、lname、mname正确更新patients表的fullname列?

SQLite更新patients表fullname列的正确方法

你遇到的问题是因为SQLite里**+是算术运算符**,不是字符串连接符。当你用lname+','+fname+','+mname时,SQLite会尝试把这些字符串转换成数字,转换失败就会当作0处理,所以最终fullname被设成了0。

正确的字符串连接方式有两种:

方法一:用||连接符

这是SQLite原生的字符串连接语法,直接用||替代+即可:

UPDATE patients
SET fullname = lname || ',' || fname || ',' || mname;

方法二:用CONCAT()函数

SQLite 3.30.0及以上版本支持CONCAT()函数,它会自动忽略空值(如果某列是NULL,不会额外添加多余的逗号):

UPDATE patients
SET fullname = CONCAT(lname, ',', fname, ',', mname);

处理空值的优化

如果mname可能为空,不想出现末尾多余的逗号,可以用COALESCE()把空值替换成空字符串:

UPDATE patients
SET fullname = lname || ',' || fname || COALESCE(',' || mname, '');

内容的提问来源于stack exchange,提问作者Fritz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:12:04