选择何时在2列中的任何一列中不存在值

Chr*_*ell 2 mysql

我有两个领域,emailaddlEmail.如果给定的电子邮件地址不在任何一个字段中,我需要一个仅选择记录的选择.

在尝试使用没有与两列(回报: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')"
Run Code Online (Sandbox Code Playgroud)

我尝试过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
Run Code Online (Sandbox Code Playgroud)

该查询应仅返回第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);
Run Code Online (Sandbox Code Playgroud)

示例查询(不返回最后一行,它应该):

SELECT *
  FROM `doubleSelect`
  WHERE Email NOT
  IN (
    'email@email.com'
  )
  AND AddlEmail NOT
  IN (
    'email@email.com'
  )
Run Code Online (Sandbox Code Playgroud)

Jir*_*iva 6

只是

AND e.Email NOT IN ('test@test.com', 'test2@test.com') 
AND e.AddlEmail NOT IN ('test@test.com', 'test2@test.com') 
Run Code Online (Sandbox Code Playgroud)

包括NULL值:

SELECT *
FROM `doubleSelect`
WHERE (Email IS NULL or Email NOT IN ('email@email.com'))
      AND (AddlEmail IS NULL or AddlEmail NOT IN ('email@email.com'))
Run Code Online (Sandbox Code Playgroud)