Jiang Sheng writes: > the sql is > select * from tbl_test where name = '石田'; > > but the result contains other data, such as 石町, 柳町, 柳田 > > and I changed the sql to > select * from tbl_test where name like '石田'; > select * from tbl_test where name ilike '石田'; > > the results both correct.
The LIKE operator uses a character-by-character comparison (which could quite possibly behave oddly if your strings contain combining characters, but that is a different issue). The = operator uses the host operating system's locale facilities to do a locale-aware comparison. So in general LIKE and = are not interchangeable. If the result you get for = is wrong even under some locale, then you probably don't have the right locale set on your server. Recent glibc systems require you to set your locale to xx_YY.utf8 (rather than just xx_YY) if you want to use Unicode. -- Peter Eisentraut [EMAIL PROTECTED] ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster