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

यह एसक्यूएल क्वेरी फ़्लोटिंग पॉइंट नंबरों की तुलना में कोई परिणाम क्यों नहीं लौटाती है?

फ्लोटिंग पॉइंट नंबरों की तुलना = . से करना आम तौर पर एक अच्छा विचार नहीं है बराबर ऑपरेटर।

आपके आवेदन के लिए, आपको यह विचार करने की आवश्यकता है कि आप उत्तर को कितना करीब चाहते हैं।

1 डिग्री लगभग 112 किमी है, और 0.00001 डिग्री लगभग 1.1 मीटर (भूमध्य रेखा पर) है। क्या आप वाकई चाहते हैं कि आपका आवेदन "बराबर नहीं" कहे, यदि दो बिंदु 0.00000001 डिग्री =1 मिमी से भिन्न हैं?

set @EPSLION = 0.00001  /* 1.1 metres at equator */

SELECT * FROM location_forslag 
WHERE `lngitude` >= 13.8461208 [email protected] 
AND `lngitude` <= 13.8461208 + @EPSILON

यह उन बिंदुओं को लौटाएगा जहां भाषा @epsilon . के भीतर है वांछित मूल्य की डिग्री। आपको एप्सिलॉन के लिए एक मूल्य चुनना चाहिए जो आपके आवेदन के लिए उपयुक्त हो।



  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. एकाधिक SQL स्टेटमेंट के साथ डेटाबेस अपडेट करें

  3. सी # MySqlParameter समस्या

  4. pymssql.OperationalError:DB-Lib त्रुटि संदेश 20009, गंभीरता 9

  5. जूमला! डेटाबेस तालिका बनाने पर 3 इंस्टॉलेशन फ़्रीज हो जाता है