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

MySQL में पूर्णांकों की श्रेणी चुनें। उदा. 1,2,3,4,...,एन;

आपकी क्वेरी में समस्याएं:

  1. आप range का उपयोग नहीं कर सकते WHERE क्लॉज में। यह एक उपनाम है और इसे WHERE क्लॉज के बाद ही परिभाषित किया जाएगा।
  2. यहां तक ​​कि अगर आप इसका इस्तेमाल कर सकते हैं, तो <> का उपयोग करके संख्याओं के सेट के साथ किसी संख्या की तुलना करने का कोई मतलब नहीं है। . सामान्य तौर पर आप IN(...) . का उपयोग कर सकते हैं , लेकिन आपके विशेष मामले में आपको BETWEEN 100000 and 999999 . का उपयोग करना चाहिए और RANGE . की आवश्यकता से बचें समारोह।
  3. यदि आप केवल एक संख्या चाहते हैं तो सीमा 1 होनी चाहिए, कुछ यादृच्छिक नहीं। आमतौर पर यादृच्छिक आइटम का चयन करने के लिए आप ORDER BY RAND() . का उपयोग करते हैं ।

इस क्वेरी का उपयोग करके देखें:

SELECT phoneNum, 100000 as rangeStart, 999999 AS rangeEnd
FROM phone
WHERE phoneNum NOT BETWEEN 100000 AND 999999
ORDER BY RAND()
LIMIT 1

यदि आप एक संख्या खोजना चाहते हैं जो आपकी तालिका में नहीं है और उपलब्ध संख्याएँ रिक्तीकरण के करीब नहीं हैं (जैसे कि 80% से कम असाइन की गई हैं) एक अच्छा तरीका यह होगा कि यादृच्छिक संख्याएँ उत्पन्न की जाएँ और जाँचें कि क्या उन्हें तब तक असाइन किया जाता है जब तक कि आपको वह नहीं मिल जाता है 'टी.

एक शुद्ध 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. उपलब्धियां / बैज सिस्टम

  2. MySQL FULLTEXT इंडेक्स जारी करता है

  3. GROUP_BYs के दो बाएं जॉइन में से GROUP_CONCAT से अजीब डुप्लिकेट व्यवहार

  4. शीर्ष MySQL कार्यक्षेत्र विकल्प

  5. mysqli-- त्रुटि के साथ विफल बयान तैयार करें कोई तालिका का उपयोग नहीं किया गया है