Home > Archives > 2007-12
2007-12
[php][mysql]「ほ」と「ぽ」とSUBSTRINGの謎。
- 2007-12-06 (木)
- web
SQL内で
WHERE SUBSTRING(name,1,1) = ‘ほ’
みたいに書いていて今まで上手くいっていたものをphp側で処理させようとして、
if(substr($name,0,1)==’ほ’){
}
としたのですが、どうも「ぽ」が入らなくなっていた様子。
というより今まで「ぽ」がSQL版の方でヒットしていたことを疑問に思わなかった自分がすごい。
というわけでひとまず $name == ‘ほ’ || $name == ‘ぽ’ || $name==’ぼ’ とするしかないようなのですがこれってどういう仕組みなんですかね。
結局いろいろ実験してみたけど
WHERE SUBSTRING(name,1,1) = ‘ほ’
でも
WHERE name like ‘ほ%’
でも同じ。それぞれ「ほ」を「ぽ」「ぼ」にしても同じ。
ということはSUBSTRINGの問題ではなくてそもそもMySQL内では同じコードとして扱われているということ?
UTF-8の文字コードでも
E381BB ほ
E381BC ぼ
E381BD ぽ
とはっきりと違うのでなにがなにやら。
現段階では今後気をつけようとしかいえません。
なんだろーなーこれ
15:06追記>>
どうもMySQLだとカタカナもいっしょくたに含む様子
WHERE SUBSTRING(name,1,1) = ‘こ’
ってしたら「コ」もヒットした
どうなってんだー
Popularity: 31% [?]
links for 2007-12-05
- 2007-12-05 (水)
- del.icio.us
-
MT4では日本語エラーメッセージが出ないのでハマりやすいのではないかと思われる
Popularity: 21% [?]
Home > Archives > 2007-12
- Search
- Feeds
- Meta


