MySQL 5.7版本之后,新增了對JSON的支持。其中JSON數據類型在MySQL中既可以存儲JSON格式的文本數據,也可以將數據以對象(Object)或數組(Array)的形式存儲到表中,這在存儲某些非結構化的數據時非常方便。
除此之外,MySQL還提供了對JSON類型的諸多操作,比如使用JSON_EXTRACT函數提取JSON對象屬性的值,使用JSON_ARRAY函數生成JSON數組等等。
而對于JSON格式的SET類型,MySQL也是支持存儲的。SET類型和JSON格式都是用來存儲一組數據的,但SET類型是一個字符串,可以方便的進行一些邏輯操作。而JSON格式則更加靈活,可以存儲更加復雜的數據結構。
下面是一個簡單的示例,展示了如何使用MySQL JSON類型存儲一個包含顏色信息的SET:
CREATE TABLE `test_table` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `color_set` json DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT INTO `test_table` (`color_set`) VALUES ('["Red", "Blue", "Green"]'), ('["Yellow", "Black", "White"]');
上述示例中,創建了一個名為test_table的表,其中包含一個名為color_set的JSON類型字段,用來存儲一個SET類型的顏色集合。使用JSON格式存儲SET類型,可以增強數據的靈活性,同時也不失去SET類型的邏輯操作能力,是一種不錯的選擇。