Mysql
 sql >> Baza danych >  >> RDS >> Mysql

wygeneruj klauzulę where w bash za pomocą zmiennych

Wydajniejsze będzie wprowadzanie drobnych zmian w zapytaniu, co ułatwi dynamiczne generowanie (równoważnego) kodu SQL.

Używa operatora „pomiędzy”, aby uniknąć list o zmiennej długości dla warunków „w (...)”.

Zwróć uwagę na komentarz dotyczący 1=1, jest on zachowywany zgodnie z pytaniem, ale należy go przejrzeć, ponieważ zawsze sprawi, że warunek przejdzie.

min_date='2020-06-06'
max_date='2020-06-08'
max_seq_min_date=1
max_seq_max_date=3

echo "
WHERE 1 = 1 or case
    when batch_date = '$min_date' then seq_num between 1 and $max_seq_min_date
    when batch_date = '$max_date' then seq_num between 1 and $max_seq_max_date
    when batch_date between '$min_date' and '$max_date' then seq_num between 1 and 4
    else false
    end
" 

NIE mam mysql, ale powyższe działa dla Postgresql.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę manipulować trafnością wyszukiwania pełnotekstowego MySQL, aby jedno pole było bardziej „wartościowe” niż inne?

  2. Dodać 2 godziny do aktualnego czasu w MySQL?

  3. Wykonaj skrypt SQL do tworzenia tabel i wierszy

  4. Czy `mysqlcheck` może pomóc mi rozwiązać problemy z bazą danych bez uszkadzania mojej bazy danych?

  5. Zapytanie podobne do MySQL działa wyjątkowo wolno dla tabeli 5000 rekordów