파이썬 MySQL에서 Where

필터를 사용하여 선택

테이블에서 기록을 선택할 때 "WHERE" 문을 사용하여 선택을 필터링할 수 있습니다:

예제

"Park Lane 38" 기록을 선택한 기록, 결과:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  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)

실제 예제 실행

대체 기호

또는 주어진 문자 또는 구절로 시작하거나 포함하거나 끝나는 기록을 선택할 수도 있습니다.

사용하세요: % 대체 기호:

예제

지역에 단어 "way"를 포함하는 기록을 선택하세요:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  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)

실제 예제 실행

SQL注入 방지

사용자가 쿼리 값을 제공할 때, 이러한 값을 인코딩해야 합니다.

이는 SQL注入을 방지하기 위한 것입니다. 이는 널리 알려진 네트워크 해커 기술로, 데이터베이스를 손상하거나 악용할 수 있습니다.

mysql.connector 모듈은 쿼리 값을 인코딩하는 메서드를 갖추고 있습니다:

예제

인수%s 메서드를 사용하여 쿼리 값을 인코딩하세요:

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

실제 예제 실행