【问题标题】:PyMySQL Join Query is emptyPyMySQL 连接查询为空
【发布时间】:2017-01-21 22:08:03
【问题描述】:

我有一个在普通 MySQL 中完美运行的查询:

SELECT * FROM `ls_matches` AS m
LEFT JOIN `ls_regions` AS r
  ON r.id = m.region
WHERE
 m.crawled = FALSE

我正在使用 PyMySQL lib 进行查询,但“相同”的查询为空:

sql = "SELECT * FROM `ls_matches` AS m"\
            "LEFT JOIN `ls_regions` AS r"\
                "ON r.id = m.region"\
            "WHERE"\
            "m.crawled = %s"
        cursor.execute(sql, (False,))
        results = cursor.fetchall()
        pprint(results)

关于为什么这是空的任何想法?没有JOIN 它可以完美运行,所以我认为问题出在某个地方!

高度赞赏的任何提示!

【问题讨论】:

  • sqlmLEFTrON 之间没有空格等
  • 同意@vaultah:看起来你在Python中运行的查询是一样的,但这不是因为用`\`分割的字符串是连接的它们是写的 i>,没有添加任何换行符。
  • 是的,就是这样。你想写一个我能接受的答案吗?还是谢谢!
  • 长字符串可以使用"""string""

标签: python mysql pymysql


【解决方案1】:

您需要检查错误。

这个怎么样?

sql = """
SELECT *
FROM `ls_matches` m LEFT JOIN
     `ls_regions` r
     ON r.id = m.region
WHERE m.crawled = '%s'
"""

Python 使您能够拥有跨越多行的字符串。使用语言的功能。

我还鼓励您使用参数而不是将值填充到字符串中,但这是一个不同的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-01
    • 2021-07-07
    • 1970-01-01
    • 2017-12-21
    • 2021-10-17
    • 1970-01-01
    • 2016-02-29
    • 2021-05-13
    相关资源
    最近更新 更多