Mysql
 sql >> база данни >  >> RDS >> Mysql

генерирайте клауза where в bash с помощта на променливи

Ще бъде по-ефективно да направите незначителни промени в заявката, което ще улесни динамичното генериране на (еквивалентен) SQL.

Той използва оператор "между", за да избегне списъци с променлива дължина за условията "в (...)".

Обърнете внимание на коментара за 1=1, той се запазва според въпроса, но трябва да бъде прегледан, тъй като винаги ще изпълни условието.

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
" 

НЯМАМ mysql, но горното работи за 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. mysql подреждане на заявката за присъединяване по две колони

  2. Потърсете цяла таблица в mySQL за низ

  3. Как да предам стойности, разделени със запетая, към съхранената процедура в MySql?

  4. mysql дата показва резултати днес/вчера/седмица

  5. Автоматично довършване в MySQL под Windows