python - PyMySQL、MySQL、Python : String formatting

标签 python mysql pymysql

我找不到解决这个问题的方法,所以我最后的选择是问这个。我在 MySQL 上运行代码,一切看起来都很好,但是当我在 Python 中运行代码时,出现错误: %d format: a number is required, not str,这是 PyMySQL 的故障吗?两个 %s 应该是 apple 的占位符,而 %d%b %y 只能在 SQL 命令内使用,不能充当命令外的占位符。

db.query("""SELECT *, DATE_FORMAT(DATE_ADD
            ('1970-01-01 00:00:00',INTERVAL pubtime SECOND),
            '%d %b %Y') AS pubdate FROM media
            WHERE MATCH (description) AGAINST (%s
            IN BOOLEAN MODE) OR MATCH (headline) AGAINST (%s
            IN BOOLEAN MODE) ORDER BY pubtime DESC LIMIT 5""",
            ('apple', 'apple'))

最佳答案

您可以通过在前面添加另一个“%”来转义“%”。

db.query("""SELECT *, DATE_FORMAT(DATE_ADD
        ('1970-01-01 00:00:00',INTERVAL pubtime SECOND),
        '%%d %%b %%Y') AS pubdate FROM media
        WHERE MATCH (description) AGAINST (%s
        IN BOOLEAN MODE) OR MATCH (headline) AGAINST (%s
        IN BOOLEAN MODE) ORDER BY pubtime DESC LIMIT 5""",
        ('apple', 'apple'))

关于python - PyMySQL、MySQL、Python : String formatting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48766758/

相关文章:

python - 将一些列转换为 float

mysql - MySQL 中的简单 STR_TO_DATE 问题

当 SUM 添加到多个 JOIN 查询时,PHP while 循环只返回一行

python - 为什么 scipy.distance.cdist 在使用 float32 (较慢)和 float64 (较快)之间有很大的性能差异?

python - fit_generator 中的 Keras steps_per_epoch 是如何工作的

sql - SQL 中的 ORDER BY

django - 命令 01_migrate 在 Amazon Linux 2 AMI 上失败

python - 使用 PyMySQL 建立与服务器的连接时遇到问题 [WinError 10054]

Python - mysql - 记录生成警告的查询

python - 在 Mac 上,PYTHONPATH 应设置为什么才能使用 "python manage.py run_command"?