2010-07-15 17 views
17

मैं तो मूल रूप से मैं वापस whole_name जो first_name और last_name एक (स्थान) के साथ एक साथ concatenated है एक स्तंभ प्राप्त इसमैं MYSQL क्वेरी में पूरा नाम और अंतिम नाम के रूप में अंतिम नाम कैसे प्राप्त करूं?

SELECT `first_name` + " " + `last_name` as `whole_name` FROM `users` 

की तरह कुछ करने के लिए सक्षम होना चाहता हूँ।

मैं इसे SQL में, या अधिक विशेष रूप से, MySQL में कैसे कर सकता हूं?

उत्तर

40

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws

SELECT CONCAT_WS(" ", `first_name`, `last_name`) AS `whole_name` FROM `users` 
+4

+1: CONCAT ठीक काम करेगा: 'CONCAT (first_name,' ', last_name) AS पूरे_नाम' –

+9

CONCAT_WS सुरक्षित है जब आपके पास NULL (ex: middle name) वाले फ़ील्ड हैं। यदि कोई समेकित क्षेत्र शून्य है तो CONCAT NULL वापस आ जाएगा –

0

जब आप तीन कॉलम है: FIRST_NAME, LAST_NAME, mid_name:

SELECT CASE 
    WHEN mid_name IS NULL OR TRIM(mid_name) ='' THEN 
     CONCAT_WS(" ", first_name, last_name) 
    ELSE 
     CONCAT_WS(" ", first_name, mid_name, last_name) 
    END 
FROM USER; 
0

आप एक प्रश्न का उपयोग कर सकते प्राप्त करने के लिए एक ही:

SELECT CONCAT(FirstName , ' ' , MiddleName , ' ' , Lastname) AS Name FROM TableName; 

नोट: यह क्वेरी वापस लौटाती है अगर सभी कॉलम के पास कुछ मूल्य है यदि कोई शून्य या खाली है तो यह शून्य के लिए वापस आ जाएगा सब, मतलब है कि नाम "न्यूल"

ऊपर से बचने के लिए हम IsNull कीवर्ड का उपयोग कर सकते हैं।

SELECT Concat(Ifnull(FirstName,' ') ,' ', Ifnull(MiddleName,' '),' ', Ifnull(Lastname,' ')) FROM TableName; 

यदि कोई भी शून्य मूल्य वाला '' (स्पेस) अगले मूल्य के साथ जोड़ देगा।

संबंधित मुद्दे

 संबंधित मुद्दे