2013-11-02 67 views
0

我遇到數據輸入問題,我真的不知道從哪裏開始。我正在使用MySQL 5.6.14,我有一個包含所有世界已知IP地址列的表,包括ipstart,ipEnd,ip country initial,ipCountry。我有大約81,000個條目,當我通過My​​SQL工作臺進行非常簡單的查詢時: -MySQL - 在非常簡單的查詢中沒有返回行

SELECT * FROM ipToCountry WHERE ipCountry = "Finalnd" 

什麼也沒有回來。我嘗試過澳大利亞和斯洛文尼亞,但還是一無所獲。當我簡化了查詢

Select * 

一切都回來了,國家我想查詢以前被確實陸續上市,它們的行。我做了一個ipCountry值的右鍵單擊,並在編輯器中選擇了開放值,並注意到光標位於下一行。我刪除了所有與選擇之前,然後重新輸入名稱「應用」 我跑的查詢

SELECT * FROM ipToCountry WHERE ipCountry = "Slovenia" 

哎prosto興田單行回來..

我的問題是我怎麼能寫一個查詢從所有81,000個條目中刪除此回車?

供參考 - 該數據已經通過CSV加載,我檢查了CSV文件,並沒有額外的回車或有額外的線路......請幫助(81,000次)

顯然我可以」 t發佈編輯器中的值的屏幕截圖,但條目看起來像這樣 斯洛文尼亞 | (PIP代表閃爍的光標)

+0

您可以試試WHERE ipCountry如'%Finland%'。 –

+0

你應該也發佈你的創建表語句charset集合可以區分大小寫或不是.. –

回答

0

更新所有的行,用一個空字符串替換新行:

UPDATE IpToCountry SET IpCountry = REPLACE(IpCountry, " 
", ""); 
+0

我很抱歉,但我不清楚那是什麼會讓我...在我的表中的空值? – Filious

+0

不,它會刪除換行符。 –

1

要從你可以使用TRIM()函數的字符串中刪除多餘的空白。

UPDATE ipToCountry SET ipCountry = trim(ipCountry); 
+0

嘗試按照你的建議,但它沒有工作addtional線仍然存在。我也一直在做一些試驗,並且似乎在CSV的最後一欄中已經出現了。所以,如果你的CSV中有一個虛擬列,填充虛擬數據,當你將它加載到MySQL時,它工作正常。當然,您也必須在表格中添加一個虛擬列,以便它可以接收數據。然後在導入完成後刪除虛擬列。可悲的是,仍然留下了我目前在我的數據庫中的81,216行 – Filious