2010-10-05 17 views
15

मैं सोच रहा था कि +1 से कॉलम अपडेट करने का सबसे आसान तरीका क्या होगा? जब उपयोगकर्ता एक नई पोस्ट सबमिट करते हैं तो मैं एक श्रेणी की पोस्ट गिनती अपडेट करूँगा।MySQL अद्यतन कॉलम +1?

धन्यवाद।

+0

मुझे खेद है, मुझे समझ में नहीं आता है। क्या आप अपने कॉलम के मान को अपने पुराने मान + 1 पर सेट करने वाली सभी पंक्तियों को अपडेट करना चाहते हैं? – Benoit

+0

@ बेनोइट: ओपी श्रेणी से संबंधित पोस्ट गिनती को स्टोर और अपडेट करना चाहता है। समस्या के अच्छे जवाब के लिए –

उत्तर

26

सबसे आसान तरीका है, नहीं दुकान गिनती करने के लिए है मूल्य को प्रतिबिंबित करने के लिए के रूप में यह डेटाबेस में है COUNT समेकित फ़ंक्शन पर निर्भर:

SELECT c.category_name, 
      COUNT(p.post_id) AS num_posts 
    FROM CATEGORY c 
LEFT JOIN POSTS p ON p.category_id = c.category_id 

आप ऊपर वर्णित क्वेरी को घर पर रखने के लिए create a view कर सकते हैं, ताकि आप दृश्य की तरह पूछ सकें जैसे कि आप एक टेबल ...

लेकिन आप संख्या के संचय पर सेट कर रहे हैं, का उपयोग करें:

UPDATE CATEGORY 
    SET count = count + 1 
WHERE category_id = ? 

..replacing "?" उपयुक्त मूल्य के साथ।

+4

+1 के अच्छे उत्तर के लिए +1, यदि प्रश्न – Amadan

+2

प्रश्न नहीं है। शुरुआत में मेरे विचार को एक श्रेणी में पदों की मात्रा निर्धारित करने के लिए उस श्रेणी से मेल खाने वाले बिल्ली_आईडी के लिए पोस्ट टेबल जांचना होगा और फिर उन्हें जोड़ना होगा। सोचा कि यह उस तालिका में सीधे लिखने से संसाधन उपभोग करने वाला या कम कुशल हो सकता है। – Cory

+1

जब आपके पास 'p.post_id' पर कोई अनुक्रमणिका है तो यह बहुत तेज़ है। – Amadan

22

आप कर सकते हैं:

UPDATE categories सेट posts = posts +1 कहां category_id = 42;

+1

+1 शाब्दिक प्रश्न – Amadan

7

कैसे के बारे में:

update table 
set columnname = columnname + 1 
where id = <some id> 
संबंधित मुद्दे