MySQL是一個非常流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在實際應(yīng)用過程中,有時會遇到一個字段有兩個(或以上)值需要關(guān)聯(lián)的情況。這時,我們可以通過一些方法來解決。
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`gender` enum('male','female') COLLATE utf8mb4_unicode_ci NOT NULL,
`hobby` set('reading','sports','music','travel') COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
上述代碼創(chuàng)建了一個名為“users”的表,其中“hobby”字段采用set類型,可以存儲多個值。
INSERT INTO `users` (`id`, `name`, `gender`, `hobby`) VALUES
(1, 'Tom', 'male', 'reading,music'),
(2, 'Lily', 'female', 'sports,travel'),
(3, 'Jason', 'male', 'reading,sports,travel'),
(4, 'Emily', 'female', 'reading,music,travel');
上述代碼向“users”表中插入了4個用戶,其中“hobby”字段分別存儲了不同的多個愛好。
SELECT * FROM `users` WHERE FIND_IN_SET('reading', `hobby`) >0;
SELECT * FROM `users` WHERE `hobby` LIKE '%music%';
上述代碼分別演示了兩種根據(jù)“hobby”字段查詢用戶的方法。第一個查詢使用了“FIND_IN_SET(x, str)”函數(shù)來找到包含指定值的記錄。第二個查詢則使用了LIKE運算符和通配符來模糊匹配。
以上就是MySQL中實現(xiàn)一個字段有兩個值關(guān)聯(lián)的方法,希望對大家有所幫助。