2010-09-22 15 views
6

मेरे पास कॉलम नाम डिस्प्लेर के साथ तालिका 1 से 250 के साथ है और यह ऑटोइनक्रिकमेंट नहीं है।पहले से मौजूद मानों में +1 कैसे जोड़ें

अब मैं displayorder = 3 के साथ तालिका में एक नई पंक्ति जोड़ना चाहता हूं। इसलिए मैं सभी मानों को मैन्युअल रूप से 3 से 250 के रूप में अपडेट नहीं करना चाहता हूं। इसके बजाय मैं सभी डिस्प्लेर्स को +1 पर अपडेट करना चाहता हूं और मैं मैन्युअल रूप से 1 से 2 (यानी अद्यतन के बाद 2 से 3) में बदल सकता हूं। मैं इसे SQL क्वेरी के माध्यम से कैसे कर सकता हूं?

उत्तर

17

अगर मैं सही ढंग से समझ, आप एक UPDATE बयान इस तरह चलाना चाहते हैं चाहते हैं:

UPDATE your_table SET displayorder = displayorder + 1 WHERE displayorder > 2; 

टेस्ट मामला: UPDATE बयान के बाद

CREATE TABLE your_table (displayorder int); 

INSERT INTO your_table VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9); 

परिणाम:

SELECT * FROM your_table; 
+--------------+ 
| displayorder | 
+--------------+ 
|   1 | 
|   2 | 
|   4 | 
|   5 | 
|   6 | 
|   7 | 
|   8 | 
|   9 | 
|   10 | 
+--------------+ 
9 rows in set (0.00 sec) 
3

अपनेटेबलनाम सेट डिस्प्लेऑर्डर = डिस्प्लेऑर्डर + 1 अपडेट करें जहां डिस्प्लेडर > 2

2
UPDATE MyTable SET displayorders=displayorders+1 WHERE displayorders>2 
संबंधित मुद्दे