MySQL 或条件可能为空的两列
MySQL Or condition on two columns that may be empty
我有一个 table customers
,其中有一列 email_address
和 contact_number
,并且只需要其中一个。
现在我想写一个查询来检查客户是否存在。
到目前为止,这是我的查询:
SELECT *
FROM customer c
WHERE (c.email_address = '' OR c.contact_number = '0123456789')
AND c.company_id = companyId
如果客户记录既有电子邮件地址又有联系电话,但如果客户只有其中之一(例如 email_address = '' 和 contact_number = '1234567890' ) 它 return 是一个正确的结果,但我希望它在 email_address
或 contact_number
为空或空时不检查该列。
编辑:
这是我想要的一些示例数据和结果示例:
Table:客户
id, email_address, contact_number, company_id
1, '', '0123456789', 1
2, 'aa@aa.aa', '', 1
3, 'cc@cc.cc', '2345678901', 1
如果我给查询提供电子邮件地址:'aa@aa.aa' 和联系电话:'' 它必须 return 客户 2
如果我给查询提供电子邮件地址:'' 和联系电话:'2345678901',它必须 return 客户 3
如果我给查询提供电子邮件地址:'cc@cc.cc' 和联系电话:'0123456789',它必须 return 客户 1 和 3
如果我给查询提供电子邮件地址:'cc@cc.cc' 和联系电话:'2345678901123123132' 它必须 return 客户 3
如果我给查询提供电子邮件地址:'xx@cc.dd' 和联系电话:'234567890112312313223' 它必须 return 没有客户
您可能正在搜索的内容:
输入:EMAIL
和 PHONE
查询:
SELECT *
FROM customer c
WHERE
(
(c.email_address = 'EMAIL' AND 'EMAIL' <> '')
OR (c.contact_number = 'PHONE' AND 'PHONE' <> '')
)
AND c.company_id = companyId
我有一个 table customers
,其中有一列 email_address
和 contact_number
,并且只需要其中一个。
现在我想写一个查询来检查客户是否存在。
到目前为止,这是我的查询:
SELECT *
FROM customer c
WHERE (c.email_address = '' OR c.contact_number = '0123456789')
AND c.company_id = companyId
如果客户记录既有电子邮件地址又有联系电话,但如果客户只有其中之一(例如 email_address = '' 和 contact_number = '1234567890' ) 它 return 是一个正确的结果,但我希望它在 email_address
或 contact_number
为空或空时不检查该列。
编辑: 这是我想要的一些示例数据和结果示例:
Table:客户
id, email_address, contact_number, company_id
1, '', '0123456789', 1
2, 'aa@aa.aa', '', 1
3, 'cc@cc.cc', '2345678901', 1
如果我给查询提供电子邮件地址:'aa@aa.aa' 和联系电话:'' 它必须 return 客户 2
如果我给查询提供电子邮件地址:'' 和联系电话:'2345678901',它必须 return 客户 3
如果我给查询提供电子邮件地址:'cc@cc.cc' 和联系电话:'0123456789',它必须 return 客户 1 和 3
如果我给查询提供电子邮件地址:'cc@cc.cc' 和联系电话:'2345678901123123132' 它必须 return 客户 3
如果我给查询提供电子邮件地址:'xx@cc.dd' 和联系电话:'234567890112312313223' 它必须 return 没有客户
您可能正在搜索的内容:
输入:EMAIL
和 PHONE
查询:
SELECT *
FROM customer c
WHERE
(
(c.email_address = 'EMAIL' AND 'EMAIL' <> '')
OR (c.contact_number = 'PHONE' AND 'PHONE' <> '')
)
AND c.company_id = companyId