Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menggunakan kebalikan dari BETWEEN dalam kueri MySQL?

Satu-satunya hal yang dapat saya pikirkan adalah, entah bagaimana, ekspresi yang menentukan interval tanggal mengembalikan bagian waktu (strtotime() itu terlihat seperti pelakunya). Jawaban ini berurusan dengan dua opsi (opsi 2 adalah yang terbaik) ketika tanggal menyertakan bagian waktu.

Dalam kasus khusus Anda, saya pikir ini akan menjadi pendekatan terbaik untuk menyelesaikan masalah:

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))

Perhatikan bahwa date() fungsi "menghapus" bagian waktu dari nilai.

Satu hal lagi:Kode Anda mungkin rentan terhadap serangan SQL Injection . Silakan lihat di sini untuk contoh (lucu) tentang apa itu, dan tips tentang cara menghadapinya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengatur String Koneksi dengan Entity Framework

  2. Bagaimana cara memilih hitungan dengan pembuat kueri Laravel yang lancar?

  3. Mysql membuat prosedur tersimpan dari beberapa prosedur tersimpan

  4. Gunakan Database Relasional MySQL di Ubuntu 8.04 (Hardy)

  5. Kueri bersarang di node js menggunakan mysql