方法 #1 (全文):
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('"name@example.com"' 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 , 'name@example.com');
失敗した場合は存在します:
#1062 - Duplicate entry 'name@example.com' for key 2
数千行に存在するメールアドレスを見つけるのに適した方法はどれですか?