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

MySQL क्वेरी में BETWEEN के विपरीत का उपयोग कैसे करें?

केवल एक चीज जो मैं सोच सकता हूं, वह यह है कि, किसी भी तरह, दिनांक अंतराल को परिभाषित करने वाले भाव एक समय खंड (वे strtotime() लौटा रहे हैं। अपराधियों की तरह देखो)। यह जवाब दो विकल्पों के साथ डील करता है (विकल्प 2 अच्छा है) जब तारीख में एक समय भाग शामिल होता है।

आपके विशिष्ट मामले में, मुझे लगता है कि इस मुद्दे को हल करने का यह सबसे अच्छा तरीका होगा:

SELECT loanac.id, loanac.name, loanac.lacc, loanac.phone
     , SUM(loantrans.in) as totalin, SUM(loantrans.out) as totalout 
FROM loanac
     INNER JOIN loantrans on loanac.lacc = loantrans.account
-- Instead of an implicit join in the WHERE clause, use an explicit INNER JOIN
WHERE date(loantrans.date) < date('$range')  
  AND date(loantrans.date) > date('$date')
GROUP BY loanac.lacc
HAVING SUM(IFNULL(`loantrans`.`out`,0)) > SUM(IFNULL(`loantrans`.`in`,0))

ध्यान दें कि date() फ़ंक्शन मान के समय खंड को "हटा" देता है।

एक और बात:आपका कोड SQL इंजेक्शन हमलों की चपेट में आ सकता है . कृपया यहां एक नज़र डालें एक (हास्यपूर्ण) उदाहरण के लिए कि यह क्या है, और इससे निपटने के तरीके के बारे में सुझाव।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql जहां के खिलाफ मैच

  2. MySQL डेटाबेस का सही आकार कैसे प्राप्त करें?

  3. एक्सेल करने के लिए एक MySQL क्वेरी के परिणाम निर्यात करना?

  4. परिणाम में नया कॉलम जोड़ें और तालिका को समेकित करें

  5. MySQL में अंतिम पंक्ति का चयन करें