파이썬 MySQL에서 Where
- 이전 페이지 MySQL Select
- 다음 페이지 MySQL Order By
필터를 사용하여 선택
테이블에서 기록을 선택할 때 "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)
- 이전 페이지 MySQL Select
- 다음 페이지 MySQL Order By