• 締切済み

MySQL5.xで発生している問題について質問します。

MySQL5.xで発生している問題について質問します。 CREATE TABLE click ( IP varchar(20) default NULL, time date default NULL ) ENGINE=MyISAM; 上記のようなテーブルを作成しました。 このテーブルからIPにIPアドレスを指定してデータ取得を試みると SELECT * FROM click where IP = '000.000.000.000' とした際には、5000件 取得できるのですが、 (000.000.000.000 はIPアドレスです) SELECT * FROM click where IP = '000.000.000.000' order by click.time desc (000.000.000.000 はIPアドレスです) とした場合には 4件しか取得できません。 MySQL4.x では発生しなかった現象で、MySQL5.x にバージョンアップして発生した 現象で対応に困っています。 上記の現象に対応する方法をご存知の方がいらっしゃればお教えください。 ※諸事情でMySQL4.x MySQL5.x と正確なバージョンが見られない状況で申し訳ありません。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

簡単なサンプルをつくってやってみましたが、とくに問題がないみたいです。 思いつくのはゴミデータがはいっている・・・とかですが、 文法上それも考えにくいとおもいます。 私の乏しい知識と経験ではorder byによってデータ数が左右される ような事象のは聞いたことがないので場合によってはMySQLの 再インストールなど本質的な対応が必要かもしれません。

turinavi
質問者

お礼

ご回答ありがとうございます。 私もこのような問題に直面したのは、初めてのことで対応に困っておりました。 再インストールも含めて検討します。 SELECT * FROM click WHERE INET_ATON(IP) = INET_ATON('000.000.000.000') ORDER BY click.time DESC とすると、正常に取得ができるので、IPアドレスが起因している問題なのかもしれません。 しかしながら、IPカラムには、IPアドレス以外の文字列(例えば unknown など)も入る事が あるため、上記のSQLでは一括に処理をすることができずにいます。 引き続き情報をお待ちします。よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A