プロが教える店舗&オフィスのセキュリティ対策術

SQLiteのLike句で抽出できないレコードがあります。
原因についてご教授いただけますでしょうか。
以下、操作手順になります。

■データベースの作成
C:\>sqlite3.exe member.db
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"

■テーブルの作成、レコードの追加
sqlite> create table t_member(name text, age integer);
sqlite> insert into t_member values('山田一郎', 25);
sqlite> insert into t_member values('田中次郎', 35);
sqlite> insert into t_member values('鈴木三郎', 45);

■検索
sqlite> select * from t_member where name like '%一郎';
山田一郎|25
sqlite> select * from t_member where name like '%次郎';
田中次郎|35
sqlite> select * from t_member where name like '%三郎';
sqlite>

三郎だけが検索条件に適合しないのは何故でしょうか。
よろしくお願いします。

A 回答 (2件)

Vmware Player上のUbuntuのSqlite3では再現しませんでした。


Windows7では再現します。
cygwinでも再現しました。
どうもWindowsの文字コードとsqlite3の内部コードの変換処理でバグがあるようです。
    • good
    • 0

WindiwsのコマンドプロンプトはShiftJisだったと思いますが、SQLiteはUTF-8,16だったと思います。


インプットにGUIツール(PupSQLiteなど)を使ってはいかがでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!