1
方法#1(全文):MySQL全文索引或唯一VARCHAR性能
CREATE TABLE `addresses` (
`id` int(10) unsigned NOT NULL auto_increment,
`mail` text NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `mail` (`mail`)
);
找出存在與搜索:
SELECT * FROM addresses WHERE MATCH(email) AGAINST('"[email protected]"' IN BOOLEAN MODE)
或方法#2(獨特的VARCHAR):
CREATE TABLE `addresses` (
`id` int(10) unsigned NOT NULL auto_increment,
`mail` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `mail` (`mail`)
);
找出存在與插入:
INSERT INTO `addresses` (`id`, `mail`) VALUES (NULL , '[email protected]');
,如果失敗,則存在:
#1062 - Duplicate entry '[email protected]' for key 2
其方法是找出存在的郵件地址在數千行的更好嗎?