Bagaimana untuk menggunakan operator LIKE pangkalan data mysql dalam python

WBOY
Lepaskan: 2023-05-31 21:46:10
ke hadapan
1620 orang telah melayarinya

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
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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
Salin selepas log masuk
{"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
Salin selepas log masuk

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
Salin selepas log masuk
{"id": 1, "name": "张三三", "mobile": "17748484141", "address": "浙江杭州"}
{"id": 9, "name": "111", "mobile": "18847474549", "address": "浙江杭州"}
 
Process finished with exit code 0
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan