2017-04-11 47 views
0

我有城市表結構 -無法使用關鍵字來搜索記錄,但關鍵字是存在於表中的MySQL

# Name   Type   Collation 
1 cityId  int(11)    
2 countryCode char(5)  latin1_swedish_ci 
3 cityName  varchar(100) utf8mb4_unicode_ci 
4 lat   varchar(20) latin1_swedish_ci 
5 lng   varchar(20) latin1_swedish_ci 

我有「COUNTRYCODE」城市 - 「廣告」像 -

cityId countryCode cityName lat  lng 
1  ad   Aixàs  42.4833333 1.4666667 
2  ad   Aixirivali 42.4666667 1.5 
3  ad   Aixirivall 42.4666667 1.5 
4  ad   Aixirvall 42.4666667 1.5 
5  ad   Aixovall 42.4666667 1.4833333 

但是,當我執行查詢 - SELECT * FROM city WHERE countryCode = 'ad',我得到空的數據。我從excel表導入了這些數據,其中有近32,000,000條記錄。 我檢查過在國家代碼之前或之後沒有空格。 排序規則有問題嗎?我需要做一些轉換嗎?請幫忙。

+1

你可以嘗試使用類似:'SELECT * FROM城市,COUNTRYCODE LIKE '%AD%''? – Jens

+0

試試這個:'SELECT * FROM city WHERE countryCode LIKE'%ad'' ...如果這個返回這些記錄,那麼你有一個空格或Excel導入類似的問題。 –

+0

我已經嘗試了兩個查詢,但仍然是空的。 –

回答

0

嘗試整理文本您正在尋找這樣的:

SELECT * FROM city WHERE countryCode = 'ad' COLLATE latin1_swedish_ci 
+0

我的表整理是'utf8mb4_unicode_ci',所以它給我的錯誤爲「COLLATION'latin1_swedish_ci'是不適用於CHARACTER SET'utf8mb4'「 –