什麼你問的是錯誤的方式做到這一點。您不應將收藏夾數據序列化到user
表或thought
表的文本字段中。這破壞了使用像MySQL這樣的關係數據庫的全部目的。
正確的方法要做到這一點:在user
表和thought
表之間創建一個交叉引用表。這利用多對多表來存儲使用thought
行和user
行的主鍵的收藏夾列表。
您的新favorite
表:
CREATE TABLE IF NOT EXISTS `favorite` (
`id` int NOT NULL AUTO_INCREMENT,
`user_id` int NOT NULL,
`thought_id` int NOT NULL,
PRIMARY KEY (`id`)
);
這樣做是從user
表採取id
並將其存儲在favorite.user_id
,然後存儲在favorite.thought_id
的id
從thought
表。
要添加新的喜愛與123的ID的用戶,對於思想id爲456:
INSERT INTO favorite (user_id, thought_id) VALUES ('123', '456');
找那些標有編號456的想法是他們最喜歡的用戶(使用一個JOIN
):
SELECT u.* FROM favorite AS f
JOIN user AS u ON u.id = f.user_id
WHERE f.thought_id = 456;
而類似上查詢,得到用戶的喜愛的看法編號123:
SELECT t.* FROM favorite AS f
JOIN thought AS t ON t.id = f.thought_id
WHERE f.user_id = 123;
不好的想法,你應該有一個單獨的表與單獨的行。但是如果你打算這麼做,也許''json_encode()'。 – AbraCadaver
你很遺憾上述決定。要求社區尋求幫助,同時要求街上的人們用手中的剪刀蒙上眼睛。 – PeeHaa
爲了詳細說明@PeeHaa的說法,你應該研究數據庫規範化並走上這條路線,而不是試圖將所有這些都做成一列。 – mituw16