आप ऑर्डर को अक्षर के रूप में रख सकते हैं, और लेक्सिकल सॉर्ट का उपयोग कर सकते हैं:
1. A
2. Z
एक कार्य जोड़ें:
1. A
3. L
2. Z
और जोड़ें:
1. A
4. B
3. L
2. Z
2 को 1 और 4 के बीच ले जाएँ:
1. A
2. AL
4. B
3. L
आदि.
आप एक समय में केवल एक रिकॉर्ड अपडेट करते हैं:पहले वाले के बीच एक औसत अक्षर लें जो भिन्न हो:यदि आप A
के बीच रखते हैं और C
, आप B
. लें , यदि आप ALGJ
. के बीच डालते हैं और ALILFG
, आप ALH
. लें ।
Z
. के बगल में मौजूदा गणना के बगल में अक्षर मौजूदा के रूप में जुड़ा हुआ है . अर्थात। अगर आपको ABHDFG
. के बीच रखना है और ACSD
एफ, आप इसे ABH
. के बीच में गिनते हैं और AB(Z+)
, और AB(letter 35/2)
write लिखें , यानी ABP
।
यदि आपके पास स्ट्रिंग की लंबाई समाप्त हो जाती है, तो आप हमेशा एक पूर्ण पुन:क्रमित कर सकते हैं।
अपडेट करें:
आप अपने डेटा को एक लिंक की गई सूची के रूप में भी रख सकते हैं।
MySQL
. में इसे कैसे करें, इस पर मेरे ब्लॉग में लेख देखें :
संक्षेप में:
/* This just returns all records in no particular order */
SELECT *
FROM t_list
id parent
------- --------
1 0
2 3
3 4
4 1
/* This returns all records in intended order */
SELECT @r AS _current,
@r := (
SELECT id
FROM t_list
WHERE parent = _current
)
FROM (
SELECT @r := 0
) vars,
t_list
_current id
------- --------
0 1
1 4
4 3
3 2
आइटम ले जाते समय, आपको ज़्यादा से ज़्यादा 4
. को अपडेट करना होगा पंक्तियाँ।
यह एक आदेशित सूची को रखने का सबसे कारगर तरीका प्रतीत होता है जिसे बार-बार अद्यतन किया जाता है।