更改mysql会话模式并在一次pymysql执行中运行group by查询

k10s72fa  于 2023-02-03  发布在  Mysql
关注(0)|答案(1)|浏览(133)

它今天已经把我逼疯了。在一个开发环境中,MySQL是5.7,其中:
sql_mode = 'ONLY_FULL_GROUP_BY'
是默认设置。
我找不到一个简单的方法在pymysql中执行sql_mode = '';,因为每次执行只允许1个查询。

import pymysql as dbapi

dbServer=SERVER_NAME

dbPass=PASSWORD

dbUser=USER_NAME

db=dbapi.connect(host=dbServer,user=dbUser,passwd=dbPass)

cur=db.cursor()

    CY_QUERY_2 = (

        "SET SESSION sql_mode='';"+

        "SELECT *'" +

        " FROM table" + 

        "' GROUP BY PROPERTY_ID, YEAR;")

    cur.execute(CY_QUERY_2)

    cy_result2 = cur.fetchall()

我们将得到一个错误:
"SET SESSION sql_mode ='"附近的MySQL语法中存在错误;SELECT * FROM表格
遗憾的是,代码处理的每个表都有数百列。在每个查询中列出数百列并不是一个好的做法。有哪位大师能给我们一些启发吗?谢谢。

fnvucqvd

fnvucqvd1#

只需要分别执行两个查询(伪代码):

q1 = "SET SESSION sql_mode=''; "
s2 = "select ..... ;"
cur.execute(q1)
cur.execute(q1)
read_cursor_here....

相关问题