« 今日もいい日でしたo | トップページ | mySQL 改行問題[解決] »

MySQL

MySQLと戯れる今日この頃。
納得できない現象に突き当たり頭を抱える三月兎でござります(@@)

状況をテストするために、以下のテーブルを作成しました。

create table test1(id int, str char(50));
create table test2(str char(50), id int);

テストデータには、

test1に
1 FFFFFF
2 FFCCFF
3 FF99FF

test2に
FFFFFF 1
FFCCFF 2
FF99FF 3

を入れました。

ようするに1と2の違いは、フィールドの順番を入れ替えただけです。

で、問題点。

select で where str = "FFFFFF" をした時に結果が異なる。

mysql> select * from test1 where str = "FFFFFF";
Empty set (0.00 sec)

mysql> select * from test2 where str = "FFFFFF";
+--------+------+
| str    | id   |
+--------+------+
| FFFFFF |    1 |
+--------+------+
1 row in set (0.00 sec)

なんでだろう?
ちなみに、test1にint型フィールドを追加して適当なデータをいれると、
mysql> select * from test1 where str = "FFFFFF";
がちゃんと表示されるようになります。

mySQLって、最後のフィールドがchar型だとダメなのかな??
そんなんあり?

mySQLのバージョンは、4.0.20です。

« 今日もいい日でしたo | トップページ | mySQL 改行問題[解決] »

08_備忘録」カテゴリの記事

コメント

こんにちは。いずみかわです。

気になったのでちょっと試してみました。
5.0.17だと、test1 テーブルでも期待通り、
+------+--------+
| id | str |
+------+--------+
| 1 | FFFFFF |
+------+--------+
1 row in set (0.00 sec)

と返ってきました。
4.0.20のバグ?

元データをどのように入力したかによりますが、実は文字列の最後に「改行コード」が入っていたりしませんか?

str = "FFFFF" ではなく str like "FFFFF%" で評価すると表示されたりしません?

>>人形つかいさん
はい! 昨日、書き忘れましたが、
それはテストしました。
ご指摘のとおり、str like "FFFFF%" で
表示されます。

元データは、テキストエディタで1行単位になっているのですが、
改行はどのように処理するのがよいのでしょうか?
教えていただけると嬉しいです。

>>いずみかわさん
情報ありがとうございました。
MySQLのバージョンアップをして、チェックしようかと考えたのですが、
サーバーが4.0.20なので、
テスト環境だけアップしても仕方ないかー と、サボってしまいました。

原因をちゃんと確認するためには、ほんとはサボっちゃダメですよね、、、(´`ヾ) ぽりぽり・・・

テストしていただき感謝です☆

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/17907/14647956

この記事へのトラックバック一覧です: MySQL:

» mySQL 改行問題[解決] [三月兎のおたわごと?]
人形つかいさん コメントありがとうございました☆ コメントをヒントにして、検索をかけて、解決に至りました。 mySQLのレコード区切りのデフォルトは、'\n'だけれど、Windowsのエディタでデータ... [続きを読む]

« 今日もいい日でしたo | トップページ | mySQL 改行問題[解決] »

2015年6月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

最近のトラックバック

無料ブログはココログ

ブログパーツ

  • なかのひと