2つのフィールドがemail
ありaddlEmail
ます。特定の電子メールアドレスがどちらのフィールドにもない場合にのみレコードを選択する選択が必要です。
2つの列でNOTINを使用してみてください(戻り値Cardinality violation: 1241 Operand should contain 2 column(s):
:)
SELECT WebUsername,
WebPassword,
Active,
Email,
AddlEmail,
ShowYear
FROM Exhibitors e
WHERE e.Active = '-1'
AND e.ShowYear = 2013
AND (e.Email, e.AddlEmail) NOT IN ('test@test.com', 'test2@test.com')"
ANDとORを試しましたが、明らかな理由で機能しません。
徹底するために:
$emails = "'email@email.com', 'email2@email.com'";
// example table data for 2 fields in question
Row | Email | AddlEmail
1 | email@email.com | email3@email.com
2 | email4@email.com | email2@email.com
3 | email5@email.com | null
4 | email6@email.com | email7@email.com
クエリは行3と4のみを返す必要があります。
ご覧いただきありがとうございます。さらに詳しい説明が必要な場合はお知らせください。
クリス
編集:投稿された回答に応じたサンプルテーブル:
CREATE TABLE `doubleSelect` (
`Email` varchar(255) DEFAULT NULL,
`AddlEmail` varchar(255) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `doubleSelect` (`Email`, `AddlEmail`) VALUES
('email@email.com', 'email2@email.com'),
('email2@email.com', 'email3@email.com'),
('email4@email.com', 'email5@email.com'),
('email6@email.com', 'email@email.com'),
(NULL, 'email@email.com'),
('email2@email.com', NULL);
サンプルクエリ(最後の行は返されません。返されるはずです):
SELECT *
FROM `doubleSelect`
WHERE Email NOT
IN (
'email@email.com'
)
AND AddlEmail NOT
IN (
'email@email.com'
)