Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python mysql连接器查询字符串语法_Python_Mysql_Mysql Connector Python - Fatal编程技术网

python mysql连接器查询字符串语法

python mysql连接器查询字符串语法,python,mysql,mysql-connector-python,Python,Mysql,Mysql Connector Python,我是python mysql connector的新手,我正在尝试获取一个查询的结果,该查询将查找p_id=0的用户_id,并将转到产品表查找该城市有多少产品可用 import mysql.connector con = mysql.connector.connect(user='user', password = 'pass', host = 'blah.com') cursor1 = con.cursor(buffered = True) query = ("SELECT l.user_

我是python mysql connector的新手,我正在尝试获取一个查询的结果,该查询将查找p_id=0的用户_id,并将转到产品表查找该城市有多少产品可用

import mysql.connector
con = mysql.connector.connect(user='user', password = 'pass', host = 'blah.com')

cursor1 = con.cursor(buffered = True)

query = ("SELECT l.user_id, count(u.prod_id)"
        "FROM db1.users as l INNER JOIN db2.product as u "
        "ON l.u_city = u.p_city"
        "WHERE l.p_id =0 GROUP BY l.user_id limit 10;" )
cursor1.execute(query)
查询是在mysql中执行的,但是从pythonmysql连接器中我得到了以下错误

C:\Python27\python.exe C:/Python27/Lib/site-packages/mysql/connector/update_campus_user_profile_suset.py
Traceback (most recent call last):

File "C:/Python27/Lib/site-packages/mysql/connector/update_campus_user_profile_suset.py", line 12, in <module>
cursor1.execute(camp_zip)

File "C:\Python27\lib\site-packages\mysql\connector\cursor.py", line 491, in execute
self._handle_result(self._connection.cmd_query(stmt))

File "C:\Python27\lib\site-packages\mysql\connector\connection.py", line 683, in cmd_query
statement))

File "C:\Python27\lib\site-packages\mysql\connector\connection.py", line 601, in _handle_result
raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'l.campus_id <2 GROUP BY l.user_id' at line 1

Process finished with exit code 1
C:\Python27\python.exe C:/Python27/Lib/site packages/mysql/connector/update\u campus\u user\u profile\u suset.py
回溯(最近一次呼叫最后一次):
文件“C:/Python27/Lib/site packages/mysql/connector/update\u campus\u user\u profile\u suset.py”,第12行,在
cursor1.execute(camp_-zip)
文件“C:\Python27\lib\site packages\mysql\connector\cursor.py”,第491行,在execute中
self.\u handle\u result(self.\u connection.cmd\u query(stmt))
cmd\U查询中第683行的文件“C:\Python27\lib\site packages\mysql\connector\connection.py”
(声明)
文件“C:\Python27\lib\site packages\mysql\connector\connection.py”,第601行,在\u handle\u result中
引发错误。获取异常(数据包)
mysql.connector.errors.ProgrammingError:1064(42000):您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解可在“l.campus\u id”附近使用的正确语法
  • 最好使用('stmt'')将您的查询初始化为变量并执行
  • 不需要使用

看起来您只是在每行末尾缺少了一些空格。尝试:

query = ("SELECT l.user_id, count(u.prod_id) "
        "FROM db1.users as l INNER JOIN db2.product as u "
        "ON l.u_city = u.p_city "
        "WHERE l.p_id = 0 GROUP BY l.user_id limit 10;" )
有时使用多行字符串更为自然:

query = ("""
        SELECT l.user_id, count(u.prod_id)
        FROM db1.users as l INNER JOIN db2.product as u
        ON l.u_city = u.p_city
        WHERE l.p_id = 0 GROUP BY l.user_id limit 10
        """)

谢谢,但我想把它分成多行。:)
query = ("""
        SELECT l.user_id, count(u.prod_id)
        FROM db1.users as l INNER JOIN db2.product as u
        ON l.u_city = u.p_city
        WHERE l.p_id = 0 GROUP BY l.user_id limit 10
        """)