与更新整个字段相比,是否可以在字段中添加数据?
例如,在表格中
IEnumerable<Customer> customers = dbCustomers.Select(customer => new Customer
{
Name = customer.Name,
Address = customer.Address,
Number = customer.Number
});
我是否有可能编写一条SQL语句来代替更新兴趣,其中id =和retyping Maths,Science。相反,我只需插入值Science,它会在当前存储的数据后将其插入到兴趣字段中?
ID FName Interests
1 Geno Math
答案 0 :(得分:1)
你可以试试这个:
Update [YourTable]
SET Interests= CONCAT(Interests,',Science')
WHERE Id=[someid]
您可以使用CONCAT()
更新现有列值,science
。
答案 1 :(得分:1)
有可能,但不要这样做!您的数据库中有两个不同的实体,&#34;用户&#34; (某种)和&#34;兴趣&#34;。
存储此数据的正确方法是使用每个用户感兴趣的一行表:
create table UserInterests (
UserInterestId int auto_increment primary key,
UserId int not null,
Interest varchar(255),
constraint fk_UserInterests_UserId foreign key (UserId) references ?(id)
);
然后您可以非常轻松地分配新兴趣:
insert into UserInterests
values ($userId, $interest);
(注意:您应该使用参数进行此类查询,而不仅仅是将值放入查询字符串中。)
为什么这是&#34;对&#34;办法?请考虑以下事项:
答案 2 :(得分:0)
您可以使用下面的CONCAT()
功能,但最后您必须执行UPDATE
操作。
update tbl1
set Interests = concat(Interests,', Science')
where id =1;
答案 3 :(得分:0)
您不需要重新输入,只需连接 -
update t
set col=concat_ws(',',col,'new att')
where ...
但你真的不想这样做。
糟糕的设计。