>  기사  >  데이터 베이스  >  Python에서 mysql 데이터베이스 LIKE 연산자를 사용하는 방법

Python에서 mysql 데이터베이스 LIKE 연산자를 사용하는 방법

WBOY
WBOY앞으로
2023-05-31 21:46:101533검색

LIKE 연산자는 WHERE 절의 열에서 지정된 패턴을 검색하는 데 사용됩니다.

구문: ​​

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

pattern 지정된 템플릿이 배치되는 곳이며, 여기서는 와일드카드

%라고도 하는 "%"가 사용됩니다. 조건 앞에 배치되면 다음으로 끝나는 데이터를 검색합니다. ..; 예를 들어, %lee

%가 조건 뒤에 오면...으로 시작하는 데이터가 검색됩니다. 예를 들어, 조건 앞뒤에 李%

%가 있으면 포함된 데이터는 다음과 같습니다. 예: % Li%

팁:

ERROR 1064 (42000): SQL 구문에 오류가 있습니다. "%z 근처에서 사용할 올바른 구문은 MySQL 서버 버전에 해당하는 설명서를 확인하세요. " at line 1

1064의 오류는 LIKE 쿼리(구문 오류) 중에 와일드카드 문자가 인용되지 않아 오류가 보고된다는 것입니다...

올바른 표시, 예: "%lee%"

예제 1: 터미널은 sql을 실행하고 WHERE 절에 LIKE를 사용합니다

주소가 Hang

root@7c6316b19d80:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 140
Server version: 5.6.51 MySQL Community Server (GPL)
 
mysql> mysql> select * from test_user where address like "Hang%";
+----+--------+-------------+----------+
| id | name   | mobile      | address  |
+----+--------+-------------+----------+
|  3 | python | 18856565858 | Hangzhou |
|  4 | java   | 17756565858 | Hangzhou |
|  5 | php    | 15556565858 | Hangzhou |
|  6 | c#     | 17748484142 | Hangzhou |
+----+--------+-------------+----------+
4 rows in set (0.00 sec)
mysql>
로 시작하는 사람들의 정보를 쿼리하려면

주소가 u

mysql> select * from test_user where address like "%u";
+----+--------+-------------+----------+
| id | name   | mobile      | address  |
+----+--------+-------------+----------+
|  3 | python | 18856565858 | Hangzhou |
|  4 | java   | 17756565858 | Hangzhou |
|  5 | php    | 15556565858 | Hangzhou |
|  6 | c#     | 17748484142 | Hangzhou |
+----+--------+-------------+----------+
4 rows in set (0.00 sec)
mysql>

로 끝나는 사람들의 정보를 쿼리합니다예제 2: Python 스크립트를 사용하여 LIKE가 포함된 SQL 문을 실행

z개의 문자가 포함된 주소 쿼리

import pymysql
 
# 连接数据库
connection = pymysql.connect(host="localhost", user="root", password="123456",
                             database="testing", port=3306, charset="utf8",
                             cursorclass=pymysql.cursors.DictCursor)
 
try:
    with connection:
        with connection.cursor() as cursor:
            sql = """
                SELECT
                    *
                FROM
                    test_user
                WHERE
                    address LIKE "%z%";
            """
            cursor.execute(sql)
            result = cursor.fetchall()
            for i in result:
                print(i)
 
except pymysql.err.MySQLError as _error:
    raise _error
{"id": 3, "name": "python", "mobile": "18856565858", "address": "Hangzhou"}
{"id": 4, "name": "java", "mobile": "17756565858", "address": "Hangzhou"}
{"id": 5, "name": "php", "mobile": "15556565858", "address": "Hangzhou"}
{"id": 6, "name": "c#", "mobile": "17748484142", "address": "Hangzhou"}
 
Process finished with exit code 0

z개의 문자가 포함되지 않은 문자의 개인 정보 쿼리

try:
    with connection:
        with connection.cursor() as cursor:
            sql = """
                SELECT
                    *
                FROM
                    test_user
                WHERE
                    address NOT LIKE "%z%";
            """
            cursor.execute(sql)
            result = cursor.fetchall()
            for i in result:
                print(i)
 
except pymysql.err.MySQLError as _error:
    raise _error
{"id": 1, "name": "张三三", "mobile": "17748484141", "address": "浙江杭州"}
{"id": 9, "name": "111", "mobile": "18847474549", "address": "浙江杭州"}
 
Process finished with exit code 0

지식 포인트 확장: 퍼지 쿼리와 같은 mysql 데이터베이스 python

%는 Python의 특수 기호입니다. 예를 들어 %s 및 %d는 각각 문자열 자리 표시자와 숫자 자리 표시자를 나타냅니다.

우리 모두 알고 있듯이 mysql의 퍼지 쿼리에도 %를 사용해야 합니다.

그래서 먼저 확인하고 싶은 문자열을 추출한 후 매개변수로 전달하면 됩니다.

아아아아

위 내용은 Python에서 mysql 데이터베이스 LIKE 연산자를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제