2017-02-10 58 views
2

我有一個簡單的問題,如果這太基本,我很抱歉。我連接到使用SQL限制不起作用:什麼是正確的語法?

import pyodbc 
import pandas as pd 
import numpy as np 

cnxn = pyodbc.connect('DSN=MYDSN') 

遠程數據庫,我能夠使用

sql = "SELECT * FROM MASTER.PRICES" 
dataframe = pd.read_sql(sql, cnxn) 

但是拉一些數據,使用查詢

sql = "SELECT * FROM MASTER.PRICES LIMIT 10" 
sql = "SELECT * FROM MASTER.PRICES where ROWNUM <= 10" 

給出這樣一個錯誤

Unable to parse query text: Incorrect syntax near "SELECT", found "10".

爲第一個查詢。

我的問題是:

  • 沒有關於數據庫的更多信息,我怎麼能知道什麼是一個LIMIT語句正確的語法?
  • 我怎麼知道我在訪問什麼樣的數據庫?

謝謝!

+1

你應該在'limit'之前使用'order by'列。 –

+1

我相信你需要一個ORDER BY才能使用LIMIT –

+1

**我怎麼才能知道我在訪問什麼樣的數據庫** - 你如何連接 - 你必須提供某種連接字符串或某些參數給司機對嗎? – GurV

回答

1

我認爲你正在尋找錯誤的地方。

是的,最好的做法是在LIMIT之前使用ORDER BY,但在MySQL上並不嚴格需要。但是,這並不能解釋語法錯誤。

語法錯誤提示某個方向出錯了。注意它接近SELECT而不是在LIMIT附近,這讓我想知道你是否以你沒有告訴我們的方式組裝你的查詢。

也許你複製和粘貼的東西,並得到了一個有趣的unicode字符而不是空白?但是我從純粹的語法方式中看不到你使用LIMIT的方式有什麼問題,並且我敢打賭如果你在mysql客戶端中鍵入它,你將得不到任何語法錯誤。