MySQL - Select 带有 LIKE 和空值

MySQL - Select with LIKE and Nulls

我需要通知客户名单和他们的代理人。

但是很多客户没有代理。 (管理员将插入数据)

然后我的 SELECT 返回:

=============
CLIENT - AGENT
ABC INC - MARK
DEF INC - MARK
GHI INC - JOHN
YXZ INC - NULL
---------------

ADM 有一个 "Search" 引擎到 select 某些代理的客户端。

我的 Select 是:

SELECT 
CLIENTS.ID AS CLIENT, CLIENTS.NAME AS NAME, AGENTS.NAME AS AGENT FROM CLIENTS  
LEFT JOIN AGENTS ON  AGENTS.CLIENTID = CLIENTS.ID  
WHERE CLIENTS.NAME LIKE '%"&CLIENTNAME&"%' AND AGENTS.NAME LIKE '%"&AGENTNAME&"%'" 

当我使用 LIKE %% 时,他们会带来所有代理。 当我使用 LIKE %MARK% 时,他们会带上 ALL AGENTS WITH MARK

但是.. LIKE %% 我没有 "NULL" 特工..

我也需要这些信息..

有没有带 NULL 的想法?

我正在使用经典 ASP。

您需要添加如下内容:

....WHERE IFNULL(CLIENTS.NAME,'') LIKE '%%'...

在括号内添加一个附加子句以包含 NULL:

... AND (AGENTS.NAME LIKE '%"&AGENTNAME&"%' OR AGENTS.NAME IS NULL)"

您必须像这样修改您的查询:

SELECT 
CLIENTS.ID AS CLIENT, CLIENTS.NAME AS NAME, AGENTS.NAME AS AGENT FROM CLIENTS  
LEFT JOIN AGENTS ON  AGENTS.CLIENTID = CLIENTS.ID  
WHERE CLIENTS.NAME LIKE '%"&CLIENTNAME&"%' AND (AGENTS.NAME LIKE '%"&AGENTNAME&"%'" OR AGENTS.NAME IS NULL)