एक mysql क्वेरी से उच्चतम संख्या प्राप्त करना - mysql, डेटाबेस, डेटाबेस-डिज़ाइन

मेरा मुद्दा है कि मुझे ऑर्डर बनाने की ज़रूरत है ताकि मैं कर सकूंइस वेब एप्लिकेशन में वस्तुओं को ऊपर और नीचे ले जाएं। हालांकि, मैं एक सूचकांक द्वारा ऑर्डर (ऑर्डर कॉलम) मानों को अनुक्रमिक मान के साथ अनुक्रमित नहीं कर सकता क्योंकि इस कॉलम का उपयोग करने वाली एक ही तालिका में कई कंपनियां हैं।

मेरी टेबल संरचना यह है: यहां छवि विवरण दर्ज करें

अभी मैं सबसे आसान तरीका सोच रहा हूंएक MAX करना होगा और उच्चतम संख्या को पकड़ना होगा और एक इंडेक्स के रूप में इसका उपयोग करना होगा ताकि जब आप किसी कंपनी के लिए नई प्रविष्टि जोड़ने के लिए किसी विशेष कंपनियों की सूची के लिए दो बार समान संख्या के साथ समाप्त न हों।

SELECT MAX(ord) FROM phonebook WHERE `id_company` = "51";

क्या यह जाने का एक बुद्धिमान मार्ग होगा? या हो सकता है कि प्रत्येक क्लाइंट के लिए एक नया डेटाबेस बनाएं और बनाएं और अनुक्रमणिका करें और इसे ऑर्डर प्रविष्टियों के रूप में उपयोग करें?

उत्तर:

उत्तर № 1 के लिए 1

मेरा सुझाव है कि आप अपने असाइनमेंट में पूर्ण पूर्णता से कम के लिए लक्ष्य रखें ord मान। आप निम्नानुसार इस से दूर हो सकते हैं:

  1. मत करो ord अद्वितीय। (यह नहीं है "टी)।
  2. आदेश पर भरोसा करते हैं phonebook_name नामों का एक अच्छा आदेश प्राप्त करने के लिए। MySQL के पास इस उद्देश्य के लिए इन अद्भुत केस-असंवेदनशील संयोजन हैं।
  3. मुझे लगता है कि आप "कंपनी के लिए कुछ प्रविष्टियां बनाने की कोशिश कर रहे हैं, और दूसरे आते हैं। सेट करें ord कॉलम टू 50 सभी के लिए, फिर उन प्रविष्टियों को दें जिन्हें आप पहले कम संख्या चाहते हैं, और जिन्हें आप अंतिम उच्च संख्या चाहते हैं।

जब आप किसी विशेष कंपनी के लिए डेटा प्रदर्शित करते हैं, तो इसे इस तरह करें ...

SELECT whatever, whatever
FROM phonebook
WHERE id_company = 11
ORDER BY ord, phonebook_name, phonebook_number, id_phonebook

इस ORDER BY खंड जो आप चाहते हैं वह करेगा, और डुप्लिकेट होने पर यह स्थिर रहेगा। फिर आप अपने यूजर इंटरफेस में, इस तरह की क्वेरी के साथ एंट्री ले जा सकते हैं।

UPDATE phonebook SET ord=ord-1 WHERE id_phonebook = :recordnumber

संबंधित सवाल
सबसे लोकप्रिय