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

डेल्फी में MySQL में रैंड () फ़ंक्शन के साथ सिंटैक्स त्रुटि

सबसे पहले, आप RAND() . का उपयोग नहीं कर रहे हैं सही ढंग से। यह एक दशमलव संख्या देता है 0 <= N < 1 . इनपुट मान एक बीज है, ऊपरी सीमा नहीं जैसा आप उम्मीद कर रहे हैं। 0 <= N < Count . के बीच एक यादृच्छिक पूर्णांक संख्या प्राप्त करने के लिए , आपको परिणाम को कई गुना करना होगा, अर्थात RAND()*Count , जो आप नहीं कर रहे हैं। लेकिन आपको ऐसा करने की आवश्यकता नहीं है, आप बस RAND() . का उपयोग कर सकते हैं अपने आप में, पहले रिकॉर्ड संख्या को क्वेरी करने की कोई आवश्यकता नहीं है:

qryCards.SQL.Text := 'SELECT * FROM tblCards WHERE Card_Rarity = "Epic" ORDER BY RAND() LIMIT 1';
qryCards.Open;
ShowMessage(qryCards.FieldByName('Card_Name').AsString);

अन्यथा, आप LIMIT . पर ऑफ़सेट निर्दिष्ट करके एक यादृच्छिक रिकॉर्ड का चयन कर सकते हैं खंड, जैसे:

qryCards.SQL.Text := 'SELECT * FROM tblCards WHERE Card_Rarity = "Epic"';
qryCards.Open;
iCount := qryCards.RecordCount;
qryCards.Close;
qryCards.SQL.Text := 'SELECT * FROM tblCards WHERE Card_Rarity = "Epic" LIMIT ' + IntToStr(Random(iCount)) + ', 1');
qryCards.Open;
ShowMessage(qryCards.FieldByName('Card_Name').AsString);

यदि आपकी तालिका में एक ऑटो-इन्क्रीमेंट आईडी फ़ील्ड है जिसमें कोई अंतराल नहीं है, तो ऐसी अन्य तकनीकें हैं जिनका आप उपयोग कर सकते हैं RAND() साथ। देखें 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. $filter JPA/Olingo 2.0.11 में MySQL के साथ काम नहीं कर रहा है

  3. मोंगोडीबी का उपयोग कब करें

  4. पायथन एन्कोडिंग में mysql

  5. MySQL:रिकॉर्ड के बीच औसत अंतराल