Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

बिना रिपीट किए एक-एक करके रिकॉर्ड कैसे चुनें?

चूंकि चयन एक परमाणु ऑपरेशन है, मुझे नहीं लगता कि एक आसान समाधान है। मुझे दो अलग-अलग समस्याएं भी दिखाई देती हैं जिन्हें हल करने की आवश्यकता है:

एक दिखाए गए को दोहराए बिना एक पंक्ति का चयन करना। मूल रूप से आपको कहीं दिखाई गई अंतिम पंक्ति को संग्रहीत करने की आवश्यकता है। यदि आपके पास कुछ एप्लिकेशन है, जो वर्तमान स्थिति को संग्रहीत करता है, तो यह एक विकल्प हो सकता है, इसे बाहरी चर के रूप में सहेजना। स्केच समाधान MySQL 5.0+ में किया जाता है:

पहले एक स्टेटमेंट तैयार करें जिसे बाद में निष्पादित किया जाएगा और क्वेरी के लिए एक प्रारंभिक स्थिति निर्धारित की जाएगी:

PREPARE STMT FROM 'SELECT id, name FROM customer LIMIT ?, 1';
SET @pos = 0;

आप एक विश्वसनीय परिणाम प्राप्त करने के लिए एक डिफ़ॉल्ट क्रम जोड़ना चाह सकते हैं। हर बार जब आप एक पंक्ति प्राप्त करना चाहते हैं, तो कथन को

द्वारा निष्पादित करें।
EXECUTE STMT USING @pos; 
SELECT count(*) FROM customer INTO @max; 
SET @pos=(@pos+1)%@max;

दूसरी बात यह है कि आप एक यादृच्छिक स्थिति पढ़ना चाहते हैं। एकमात्र समाधान जो मैं अभी देख रहा हूं, वह एक अस्थायी तालिका बनाना है जो या तो यादृच्छिक रूप से आदेशित ग्राहक से सामग्री रखता है या आप 0[email protected] और अस्थायी तालिका से मुख्य तालिका में वर्तमान स्थिति पढ़ें। यदि आपके पास MySQL के बाहर कोई एप्लिकेशन है तो इसे हल करने के लिए और भी शानदार तरीके हो सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तैयार कथनों का उपयोग करके SQL_CALC_FOUND_ROWS मान कैसे प्राप्त करें?

  2. गंभीर त्रुटि:अपरिभाषित फ़ंक्शन को कॉल करें session_register ()

  3. क्लॉज द्वारा ऑर्डर को कैसे हल करें चयन सूची में नहीं है क्योंकि MySQL 5.7 सेलेक्ट DISTINCT और ORDER BY के कारण होता है

  4. पहली कॉल ऑटो इंक्रीमेंट होने के साथ mysql में डेटा इन्फाइल कैसे लोड करें?

  5. MySQL - एक क्वेरी में अलग-अलग मानों के साथ कई पंक्तियों को अपडेट करें