gpt4 book ai didi

python - Django : How to use LIKE while fetching data from mysql DB

转载 作者:行者123 更新时间:2023-11-29 16:41:45 25 4
gpt4 key购买 nike

我需要一种使用 Django 中的 LIKE 从数据库中获取类似记录的方法。我的代码是:

def fetchProductsDate1(request):
query = request.session.get('query')
date1 = request.session.get('date1')
db = pymysql.connect(host=host,user=user,passwd=passwd,db=dbName)
# Create a Cursor object to execute queries.
cur = db.cursor()
# Select data from table using SQL query.
stmt = "SELECT FSN FROM tab WHERE query LIKE '%s' AND DATE(updated_at) LIKE '%s' " % (query.replace("'", r"\'"), date1)
log.info(stmt)
cur.execute(stmt)
rows = cur.fetchall()
json_data = rows[0][0]

数据库语句如下所示:

SELECT num FROM tab WHERE query LIKE 'soch sarees' AND DATE(updated_at) LIKE '2018-11-14'

我希望声明如下:

SELECT num FROM tab WHERE query LIKE '%soch sarees%' AND DATE(updated_at) LIKE '2018-11-14'

任何帮助都会非常好:)

谢谢。

最佳答案

您可以使用%%来做到这一点

stmt = "SELECT FSN FROM tab WHERE query LIKE '%%%s%%' AND DATE(updated_at) LIKE '%s' " % (query.replace("'", r"\'"), date1)

这会给我们

SELECT FSN FROM tab WHERE query LIKE '%soch sarees%' AND DATE(updated_at) LIKE '2018-11-14'

另外,我认为像这样连接参数是一个不好的做法。这会打开 SQL 注入(inject)的路径

你可以尝试:

select_stmt = "SELECT FSN FROM tab WHERE query LIKE '%%%(name)%%%' AND DATE(updated_at) LIKE '%(date)%'"
cursor.execute(select_stmt, { 'name': 'soch sarees','date':'2018-11-14' })

关于python - Django : How to use LIKE while fetching data from mysql DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53313070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com