MySQLのLIKE文による抽出で期待通りの検索結果を出してくれなかった。
「絵コンテ」でヒットするのに「コンテ」ではヒットしなかった。
(原因)
MySQL4.0以下では日本語は単なるバイナリ列と同程度の扱いだった。MySQL4.1以上では正式に多言語に対応したようである。EUC-JPでも問題が出にくいみたいだ。
1)LIKEで検索したいフィールドに「BINARY」を付加する
SELECT a FROM b LIKE BINARY 'ABC';
2)CREATE TABLE 時に varchar(255) BINARY と指定しておく
(簡単な回避方法)
3)バイナリが嫌ならLIKEの代わりにREGEXPを使う。これがオススメ
SELECT a FROM b WHERE target LIKE '%~%'
ではなくて、
SELECT a FROM b WHERE target REGEXP '~'
他には文字コードを明記しておいた方がよいかも
CREATE TABLE `tablename` (
`id` int(11) NOT NULL auto_increment,
) ENGINE=MyISAM DEFAULT CHARSET=utf8;





