1
我的問題涉及在給定初始搜索字符串的情況下搜索MySQL表匹配的城市名稱列表,其目的是處理用html實體編碼的特殊字符(如ö等) )。使用正則表達式處理編碼字符的MySQL查詢
例如:
有一張名爲'城市'的表。城市名稱欄稱爲'名稱'。有兩個城市Hamberg(id 1)和h ä meenlinna(id 2)存儲爲h & auml; meenlinna。
有人使用字符串「Ham」進行搜索。標準查詢如
SELECT id, name FROM cities WHERE name LIKE '%Ham'
將只返回第一個。
我有一個正則表達式從實體中解析出字符,但它是用PHP實現的,下面提供了它的完整性。
preg_replace("/&(.).*;/", '$1', $city_name);
是否有查詢包含大多數具有實體的單個字符?
確實。 如果您在mysql中存儲「ö」,您可以通過做 指定不通過collate不敏感的選擇選擇... WHERE name COLLATE utf8_general_ci like'%o' – 2009-04-26 19:55:12