Python MySQL Onde

Usar o filtro para selecionar

Ao escolher registros de uma tabela, você pode usar a cláusula "WHERE" para filtrar a seleção:

Exemplo

Escolher registros para "Park Lane 38", resultado:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="seunomeusuario",
  passwd="suacontrassenha",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers" WHERE address ='Park Lane 38"'
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

Executar Exemplo

Caractere curinga

Você também pode escolher registros que começam com, contêm ou terminam com uma letra ou frase dada.

Use % Representa o caractere curinga:

Exemplo

Escolher registros que contêm a palavra "way" no endereço:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="seunomeusuario",
  passwd="suacontrassenha",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address LIKE '"%way%"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

Executar Exemplo

Prevenir Injeção SQL

Quando o usuário fornecer valores de consulta, você deve escapar esses valores.

Este procedimento é para evitar a injeção SQL, uma técnica comum de hacker, que pode danificar ou abusar do seu banco de dados.

O módulo mysql.connector possui métodos para escapar valores de consulta:

Exemplo

Use o método de suporte %s para escapar os valores de consulta:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="seunomeusuario",
  passwd="suacontrassenha",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address =" %s"
adr = ("Jardim Amarelo 2", )
mycursor.execute(sql, adr)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

Executar Exemplo