Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menggunakan operator LIKE pangkalan data mysql dalam python

Bagaimana untuk menggunakan operator LIKE pangkalan data mysql dalam python

WBOY
WBOYke hadapan
2023-05-31 21:46:101598semak imbas

Pengendali LIKE digunakan untuk mencari corak tertentu dalam lajur dalam klausa WHERE.

Sintaks:

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

corak Di sinilah templat yang ditentukan diletakkan dan "%" digunakan di sini, juga dipanggil kad liar

% jika ia diletakkan di hadapan daripada syarat , iaitu untuk menyemak data yang berakhir dengan...; contohnya: %李

%. contoh: 李%

%Jika ia wujud sebelum dan selepas keadaan, maka data yang disertakan disemak sebagai contoh: %李%

Petua:

ERROR 1064 (42000): Anda mempunyai ralat dalam sintaks SQL anda; semak manual yang sepadan dengan versi pelayan MySQL anda untuk sintaks yang betul untuk digunakan berhampiran "%z" pada baris 1

Ralat daripada 1064 adalah semasa pertanyaan LIKE (ralat sintaks) , tiada tanda petikan di sekeliling kad bebas, jadi ralat dilaporkan...

dipaparkan dengan betul: "%李%"

Contoh 1: Terminal menjalankan sql dan menggunakannya dalam klausa WHERE LIKE

Soal maklumat orang yang alamatnya bermula dengan 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>

Soal maklumat orang yang alamatnya berakhir dengan 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>

Contoh 2: Gunakan skrip python untuk melaksanakan pernyataan SQL yang mengandungi LIKE

Soal maklumat orang yang alamatnya mengandungi aksara 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

Soal maklumat orang yang alamatnya tidak mengandungi aksara 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

Peluasan titik pengetahuan: python Pangkalan data mysql seperti pertanyaan kabur

% ialah simbol khas dalam python, seperti % s dan %d mewakili ruang letak rentetan dan ruang letak berangka masing-masing.

Seperti yang kita semua tahu, pertanyaan kabur mysql juga memerlukan penggunaan %.

Jadi, anda boleh mengekstrak rentetan yang ingin anda periksa dahulu dan kemudian menghantarnya sebagai parameter.

rreeee

Atas ialah kandungan terperinci Bagaimana untuk menggunakan operator LIKE pangkalan data mysql dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam