📜  Python MySQL – LIKE()运算符(1)

📅  最后修改于: 2023-12-03 14:46:00.669000             🧑  作者: Mango

Python MySQL – LIKE()运算符

在MySQL中,LIKE()运算符用于查询与指定模式匹配的数据。Python可以使用mysql-connector-python模块来连接MySQL数据库,并使用SQL语句来执行各种操作。

安装mysql-connector-python

可以在命令行中使用以下命令安装mysql-connector-python模块:

pip install mysql-connector-python
连接MySQL数据库

使用以下代码连接到MySQL数据库:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()
使用LIKE()运算符
通配符

在LIKE()运算符中使用通配符可以匹配任意字符。MySQL中有两个通配符:

  • 百分号(%)代表0个或多个字符。
  • 下划线(_)代表一个字符。

例如,假设有以下数据:

| 名称 | | -------- | | apple | | banana | | avocado | | pineapple| | lemons |

以下代码查询所有以“a”开头且以“e”结尾的名称:

sql = "SELECT * FROM fruits WHERE name LIKE 'a%e'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

输出:

('avocado',)

以下代码查询所有包含“n”的名称:

sql = "SELECT * FROM fruits WHERE name LIKE '%n%'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

输出:

('banana',)
('pineapple',)

以下代码查询所有以“_e”结尾的名称:

sql = "SELECT * FROM fruits WHERE name LIKE '_e'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

输出:

('lemons',)
反义符号

MySQL提供了反义符号(^)来匹配不包含某些字符的模式。例如,以下代码查询不包含“e”的名称:

sql = "SELECT * FROM fruits WHERE name LIKE '%^e%' ESCAPE '^'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

输出:

('apple',)
('banana',)
('pineapple',)
结论

LIKE()运算符是MySQL中一个非常有用的功能,它使您可以对数据进行复杂的模式匹配。Python通过mysql-connector-python模块可以很轻松地连接到MySQL数据库,并执行各种操作。