簡體   English   中英

python MySQL連接器查詢字符串語法

[英]python mysql connector query string syntax

我是python mysql連接器的新手,我正在嘗試獲取查詢結果,該查詢將找到p_id = 0的user_ids,將轉到產品表,查找該城市有多少種產品

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,但從python mysql連接器中,我得到以下錯誤

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
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'''
  • 總是最好用('''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
        """)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM