- 2007-12-06 (木) 14:29
- 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% [?]
- Newer: links for 2007-12-06
- Older: links for 2007-12-05
Comments:0
Trackback+Pingback:0
- TrackBack URL for this entry
- http://pg-w.net/archives/253/trackback/
- Listed below are links to weblogs that reference
- [php][mysql]「ほ」と「ぽ」とSUBSTRINGの謎。 from PenguinWanderer.net

