在 mysql 中存儲(chǔ)多值類數(shù)據(jù)
mysql 中存儲(chǔ)多值類數(shù)據(jù)(如多個(gè)用戶 id)時(shí),可以使用幾種方法,例如逗號(hào)分隔值或關(guān)系表。
使用逗號(hào)分隔值
這是一種簡(jiǎn)單的方法,只需將每個(gè)值用逗號(hào)分隔并存儲(chǔ)在單個(gè)字段中即可。例如:
表結(jié)構(gòu):
錯(cuò)誤表 (id int not null, 用戶 id text not null)
登錄后復(fù)制
插入數(shù)據(jù):
insert into 錯(cuò)誤表 (id, 用戶 id) values (1, '1,2,3')
登錄后復(fù)制
查詢數(shù)據(jù):
select * from 錯(cuò)誤表 where 用戶 id like '%2%'
登錄后復(fù)制
使用關(guān)系表
這是一種更規(guī)范的方法,將數(shù)據(jù)存儲(chǔ)在單獨(dú)的表中,其中每個(gè)記錄表示一個(gè)值。例如:
表結(jié)構(gòu):
錯(cuò)誤表 (id int not null, 用戶 id int not null) 用戶表 (id int not null, 名稱 text not null)
登錄后復(fù)制
插入數(shù)據(jù):
insert into 錯(cuò)誤表 (id, 用戶 id) values (1, 1) insert into 錯(cuò)誤表 (id, 用戶 id) values (2, 1) insert into 錯(cuò)誤表 (id, 用戶 id) values (3, 2) insert into 用戶表 (id, 名稱) values (1, '用戶 1') insert into 用戶表 (id, 名稱) values (2, '用戶 2')
登錄后復(fù)制
查詢數(shù)據(jù):
SELECT u.名稱, e.ID FROM 錯(cuò)誤表 e JOIN 用戶表 u ON u.ID = e.用戶 ID WHERE u.名稱 = '用戶 1'
登錄后復(fù)制
此方法允許輕松查詢和更新數(shù)據(jù),同時(shí)保持?jǐn)?shù)據(jù)完整性。