2015-05-08 42 views
2

因此,我使用的是Python MySQL連接器,我試圖編寫一些代碼來選擇一些行,具體取決於行是否符合我給出的條件它。這個表有化學品的列和縣在加利福尼亞州一列(其中包括)Python/MySQL連接器:一些查詢掛起基於輸入

所有下面的代碼行完全通過MySQL控制檯運行:

SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (county='YOLO') AND (chemical='CR6') 

SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (chemical='CR6') 

SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (chemical='CR') 

SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (county='YOLO') AND (chemical='CR') 

SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (county='YOLO') AND (chemical='NO3') 

對於上述每個語句,我把引號中的語句並通過python執行。然後我試着運行一個簡單的腳本。例如

query = "SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (county='YOLO') AND (chemical='CR')" 
cursor.execute(query) 
i = 0 
for (wellName,approximateLatitude,approximateLongitude,chemical,result,units,date,county) in cursor: 
    print i 
    i = i+1 

你們可以猜測Python腳本處理上述5個語句中的哪一個?只有第三和第五......對我來說沒有意義,因爲它們幾乎是一樣的東西,接受我改變了化學物質,並且它們都在MySQL命令行上完美地工作。更具體地說,當我說這個命令對Python不起作用時,我在循環中的計數器就會在中間凍結並停止執行任何操作。對於第三和第五條語句,循環最終會退出並在循環之後開始打印出來。任何人都可以幫助我確定什麼可能是錯誤的或不同的方式來調試我的代碼?我感謝幫助!

+0

您可能需要在'cursor.execute(query)'行之後添加類似'results = cursor.fetchall()'的東西。 – 101

+0

不幸的是,同樣的事情發生。凍結相同的陳述。 –

+0

_And_在沒有的情況下,改變你的循環來遍歷'results',而不是'cursor'。 – 101

回答

0

嘗試在查詢中使用斜槓。

query = "SELECT wellName, approximateLatitude, approximateLongitude, chemical, result, units, date, county FROM chemicaldata WHERE (county=\'YOLO\') AND (chemical=\'CR\')" 
cursor.execute(query) 
i = 0 
for (wellName,approximateLatitude,approximateLongitude,chemical,result,units,date,county) in cursor: 
    print i 
    i = i+1 

告訴我,如果它工作。

+0

這也沒有工作。它停止在完全相同的值=( –

+0

@Sidd是否在for循環中打印任何內容以進行第一個查詢?哪個循環​​停止了? –

+0

它在423停止(它打印0,1,2,3,4,5 .....),而在控制檯中運行命令會得到1439個結果 –