sql >> Databáze >  >> RDS >> Mysql

Jak použít řetězec .format() v příkazu MySQL?

Použití připravených příkazů (bezpečný způsob):

qry = """
    SELECT *
    FROM db
    WHERE run_start_date BETWEEN '%s 16:00:00' AND '%s 16:00:00'
""" # 

today = DT.date.today()
week_ago = today - DT.timedelta(days=7)
today = str(today.strftime('%Y-%m-%d'))  # Convert to string
week_ago = str(week_ago.strftime('%Y-%m-%d'))  # Convert to string

cursor.execute(qry, [today, week_ago])

Použití .format(), které vás vystavuje riziku vložení SQL (pokud například předáte uživatelský vstup do .format())

qry = """
    SELECT *
    FROM db
    WHERE run_start_date BETWEEN '{today} 16:00:00' AND '{week_ago} 16:00:00'
""" # Use named placeholders, nicer to read, prevents you having to repeat variables multiple time when calling .format()

today = DT.date.today()
week_ago = today - DT.timedelta(days=7)
today = str(today.strftime('%Y-%m-%d'))  # Convert to string
week_ago = str(week_ago.strftime('%Y-%m-%d'))  # Convert to string

qry = qry.format(today=today, week_ago=week_ago)
cursor.execute(qry)



  1. Jak zahrnout proměnnou PHP do příkazu MySQL

  2. Nemohu se přihlásit do své místní kopie Magento - jak použít ztracené heslo s místní kopií softwaru?

  3. sql dotaz pro vyhledání a nahrazení textu ve všech řádcích

  4. Potvrzení a transakce MySQL