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.
rreeeeAtas 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!