2012-12-17 35 views
5

के लिए पूरा नाम:Mysql अंतिम नाम से आदेश जब मैं निम्नलिखित है स्तंभ

SELECT * FROM users LEFT JOIN user_info ON users.id=user_info.user_id 
       WHERE 
        ((user_info.tester != 1) OR (user_info.tester is null)) AND 
        id in (SELECT explicituser_id FROM user_login WHERE (created < '2012-12-17' OR created >= date_add('2012-12-17', interval 1 day))) AND 
        id IN (SELECT participte_id FROM roster WHERE roster_id IN (6)) 
       order by 
        substring_index(users.name, ' ', -1) 

मैं बस उपयोगकर्ताओं के अंतिम नाम के आधार पर सॉर्ट करने की कोशिश कर रहा हूँ।

हालांकि, यह पहले नाम से सॉर्ट कर सकता है, अंतिम नाम छोटी गाड़ी है। यदि उपयोगकर्ता के नाम के आसपास उद्धरण हैं (यानी "अबीगैल मार्टिनेज" यह सॉर्टिंग को गलत बना देगा। यदि उपयोगकर्ता केवल एक नाम प्रदान करता है, और यह एक उपनाम (यानी जुआन) है, तो यह भी गलत हो जाएगा। और फिर वहाँ मध्य नाम के पहले अक्षर (यानी। टिफ़नी एस विला या स्टीव डे ला Makinov) है। दुर्भाग्य से, यह पूरा नाम (users.name) के लिए केवल एक स्तंभ का उपयोग करता है।

किसी भी मदद की सराहना की है। धन्यवाद!

उत्तर

0

अगर यह मामले सभी पंक्तियों प्राप्त करने की कोशिश कर रहा है और उसके बाद mysql_real_escape_string साथ कोशिश कर सकते हैं। ताकि आप उद्धरण होने नहीं होगा। यह कुछ इस तरह हो जाएगा।

$row['new_name'] = mysql_real_escape_string($row['name']); 

मैं भी यकीन है कि प्रदर्शन बुद्धिमान है कि क्या इसकी अच्छी इसके लिए या नहीं जाने के लिए नहीं कर रहा हूँ ..

आशा इस मई

6

substring_index(TRIM(users.name), ' ', -1)TRIM जोड़ना पीछे वाले स्पेस को हटा देगा मदद करता है। उसके बाद, सॉर्टिंग अपेक्षित के रूप में होती है।