與更新整個字段相比,是否可以在字段中添加數據?是否可以在已存在現有數據的字段中添加數據?
例如,在一個表
ID FName Interests
1 Geno Math
是否有可能爲我寫的,而不是更新的興趣其中id =和重新輸入數學,科學的SQL語句。相反,我可以插入價值科學,並將其插入興趣領域後,目前存儲的數據?
ID FName Interests
1 Geno Math, Science
與更新整個字段相比,是否可以在字段中添加數據?是否可以在已存在現有數據的字段中添加數據?
例如,在一個表
ID FName Interests
1 Geno Math
是否有可能爲我寫的,而不是更新的興趣其中id =和重新輸入數學,科學的SQL語句。相反,我可以插入價值科學,並將其插入興趣領域後,目前存儲的數據?
ID FName Interests
1 Geno Math, Science
你可以試試這個:
Update [YourTable]
SET Interests= CONCAT(Interests,',Science')
WHERE Id=[someid]
您可以通過使用CONCAT()
與現有的列值附加,science
更新。
您可以使用CONCAT()
函數,但最後您必須執行UPDATE
操作。
update tbl1
set Interests = concat(Interests,', Science')
where id =1;
你不需要重新輸入,只有連擊 -
update t
set col=concat_ws(',',col,'new att')
where ...
但你真的不希望這樣做。
糟糕的設計。
這是可能的,但不要這樣做!數據庫中有兩個不同的實體,「用戶」(某種)和「興趣」。
來存儲這些數據的正確方法是使用一個表,每個用戶和興趣一行:
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);
(注:您應該使用這些查詢的參數,而不是將這些值放入查詢字符串中。)
爲什麼這是「正確」的方式?請考慮以下幾點: