2011-12-06 31 views
6

मेरे पास आईडी, आयु और लिंग जैसे स्तंभों के साथ मेरे mysql डेटाबेस में उपयोगकर्ता तालिका है। मैंने इसमें लगभग 500 रिकॉर्ड डाले हैं।mysql किसी तालिका में मानों को प्रतिस्थापित करता है

अब मुझे रिकॉर्ड के लिए लिंग का आदान-प्रदान करने की आवश्यकता है, यानी नर के साथ मादा और मादा के साथ पुरुष को प्रतिस्थापित करें।

मैं इसे इस तरह से करने के लिए सोचा:

update users set gender='female' where gender='male'; 
update users set gender='male' where gender='female'; 

लेकिन जैसा कि आप देख सकते हैं, जैसे ही मैं पहली क्वेरी चलाने के रूप में, सभी रिकॉर्ड 'स्त्री' के लिए सेट लिंग के साथ अद्यतन किया जाएगा।

मैं क्वेरी को कैसे संशोधित कर सकता हूं या क्या मैं एक और तरीका जाऊंगा?

उत्तर

11
update users set gender=case when gender='male' then 'female' else 'male' end where gender in ('male','female'); 
3

अद्यतन उपयोगकर्ताओं को लिंग = 'tmp' सेट करें जहां लिंग = 'पुरुष';

अद्यतन उपयोगकर्ताओं को लिंग = 'नर' सेट करें जहां लिंग = 'मादा';

अद्यतन उपयोगकर्ताओं को लिंग = 'मादा' सेट करें जहां लिंग = 'tmp';

+0

इस उत्तर तालिका कई बार रिकॉर्ड अपडेट हो जाता है, अन्य लोगों की जांच यह करने के लिए एक ही बार में – golimar

3

एक में दो प्रश्नों कम्बाइन: -

update users set gender = if (gender='female', 'male', 'female'); 
+1

संभालने, आप एक तीसरा लिंग है, यह पंक्तियों को अपडेट कर सकता है, जिन्हें आप अपडेट नहीं करना चाहते हैं;) – rabudde

+1

हाँ, लेकिन आप या तो एफ या एम (या एफएम या एमएफ है?) – ajreal

+1

स्वाभाविक रूप से ऐसा होना चाहिए;) लेकिन वहां हो सकता है एक 'अपरिभाषित' राज्य बनें (यदि ओपी इस मामले की अनुमति देता है), जब कोई उपयोगकर्ता अपने लिंग के बारे में कोई डेटा नहीं देगा (यानी। फील्ड लिंग खाली हो सकता है और आपका कथन इस क्षेत्र में हेरफेर करेगा)। लेकिन 'IF' – rabudde

3
update users set gender='fem' where gender='male'; 
update users set gender='male' where gender='female'; 
update users set gender='female' where gender='fem'; 
2
update users set gender='wasmale' where gender='male'; 
update users set gender='male' where gender='female'; 
update users set gender='female' where gender='wasmale'; 
+0

'wasmale' का उपयोग करने के लिए +1 मजाकिया था !! hahaha –

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