एक उत्तर जो मैं उपयोग कर रहा हूं वह मेरे लिए बहुत अच्छा काम कर रहा है जो मैंने पहले से ही यहां नहीं देखा था (यह प्रश्न बहुत पुराना है, इसलिए यह तब काम नहीं कर सकता है) वास्तव में है
SELECT t.phone,
t.phone2
FROM jewishyellow.users t
WHERE t.phone LIKE '813%'
AND t.phone2 > ''
उस > ''
हिस्से पर ध्यान दें , जो यह जांच करेगा कि क्या मूल्य शून्य नहीं है, और यदि मूल्य सिर्फ व्हाट्सएप या रिक्त नहीं है।
मूल रूप से, यदि फ़ील्ड में व्हाट्सएप के अलावा कुछ है या NULL
, यह सच है। यह, सुपर कम भी है, इसलिए इसमें लिखने के लिए आसान है, और पर एक और प्लस COALESCE()
और IFNULL()
कार्यों कि इस सूचकांक के अनुकूल है, के बाद से आप कुछ भी करने के लिए एक मैदान पर एक समारोह के उत्पादन की तुलना नहीं कर रहे हैं है।
परीक्षण के मामलों:
SELECT if(NULL > '','true','false');-- false
SELECT if('' > '','true','false');-- false
SELECT if(' ' > '','true','false');-- false
SELECT if('\n' > '','true','false');-- false
SELECT if('\t' > '','true','false');-- false
SELECT if('Yeet' > '','true','false');-- true
अद्यतन इस बात के लिए एक चेतावनी है कि मुझे उम्मीद नहीं थी, लेकिन शून्य या उससे नीचे के संख्यात्मक मान एक रिक्त स्ट्रिंग से अधिक नहीं हैं , इसलिए यदि आप उन संख्याओं के साथ काम कर रहे हैं जो शून्य या नकारात्मक हो सकते हैं तो यह न करें , यह मेरे लिए बहुत हाल ही में था और डिबग करना बहुत मुश्किल था :(
यदि आप स्ट्रिंग्स (चार, वर्चर, टेक्स्ट इत्यादि) का उपयोग कर रहे हैं, तो यह पूरी तरह से ठीक होगा, बस न्यूमेरिक्स से सावधान रहें।
phone2
इसमें कुछ है?" लोग अनुमान लगा रहे हैं कि क्या आपका मतलबphone2
आईएस नहीं है, खाली नहीं है, विशेष रूप से