2016-04-05 25 views
1

Çözmem gereken bir sorunum var - ve büyük bir şüphe -.MySQL - LIKE and Nulls ile seçin

İstemcilerin listesini ve aracılarını bilgilendirmem gerekiyor.

Ancak birçok müşterinin bir aracı yoktu. Sonra benim SEÇ retuns

(ve adm verileri ekleyecektir):

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

ADM bazı ajan için tek istemcileri seçmek için bir "Arama" motoru var.

ve benim Seç: Ben GİBİ kullandığınızda

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&"%'" 

%% onlar TÜM AJANLAR getirmek. Ben% MARK% GİBİ kullandığınızda onlar

.. ben "Boş" Ajanlar vardı yok %% LIKE ile .. MARK

ancak BÜTÜN AJANLAR getirmek Ve .. de bu bilgiye ihtiyacım

NULL getirmek için herhangi bir fikir?

Klasik ASP ile çalışıyorum.

+0

Sadece 'LIKE' %% '' –

cevap

3

Aşağıda gibi bir şey eklemek gerekir: Böyle sorgunuzu değiştirmek zorunda

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

Hi @ 100011 koşulunu atlayın Zaman ve yardım için her şeyden önce 1 tks. Harika, zarif ve parlak bir çözüm! Mükemmel çalışıyor! Hayatımı kurtar! çok teşekkürler!!!!!! – DANIEL

+0

Rica ederim Sevgili! Yanlış olmazsam aynı sorunla karşılaştım. Verilerin neden kaybolduğunu anlamak çok zaman aldı. Sonra sorunu buldum. – 1000111

0

boş değerlere içerecek şekilde ek bir madde eklemek

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) 
0

: Parantez içinde

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

+0

Merhaba @ md-khairul-hasan zaman ve yardım için çok tks! Bunu deneyeceğim - ama - bu sorgu ile TÜM AJANLAR + NULL (benim için tamam) alacaksınız - ama "MARK" veya "JOHN" ile ajanların listesine ihtiyacım varsa - NULL da alacak mıyım? – DANIEL

+0

evet tabiki de "NULL" değerleri de dahil –

+0

merhaba, evet .. benim için bir sorun - çünkü "Boş liste" çok sayıda kayıt vardı .. ADM filtresi "MARK" tarafından alınıyorsa sadece 2 " MARK "ama 20.000 nulls ..: D .. en iyi çözüm @ 1000111 ne yazıyor. Her neyse, bilgini benimle paylaşmak için bir looooooooot. – DANIEL