現在PHPで開発しています。
テーブル構造は下記の通りです。
CREATE TABLE `timetable` (
`ID` int(3) unsigned NOT NULL auto_increment,
`gettime` int(10) unsigned default NULL,
`code` varchar(20) default '0', //英数字が入る
`time` varchar(50) default '0', //日本語が入る
`timeh` datetime default NULL,
PRIMARY KEY (`ID`),
KEY `gettime` (`gettime`)
) ENGINE=MyISAM DEFAULT CHARSET=ujis
これでふつうに
select ID,gettime,code from timetable where code='xxx'
とすると
------------
16435 5 xxx
16434 4 xxx
16433 3 xxx
16432 2 xxx
16431 1 xxx
と取得されてしまい、IDの昇順になってくれません。
select * でも同様です。LIFO型になっているように見られます。
ご助言いただきたいのは
・MySQLの場合、こうなることはあるのか、原因は何か
・対応としてはorder by をつける以外にないのか
(テーブルの構造、設定を変えることで対応可能か)
です。お忙しいと存じますが宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
殆どのRDBMSでは、以下を保証していません。
(1)「order by」指定なしでのプライマリキー順などの順序保証
(2)「order by」指定なしでの格納順などの順序保証
MySQLでも、「order by」指定なしで、「プライマリキー順になったり、格納順になったり」といったことは、一切保証されていません。
マニュアルにも「order by指定がない場合は、順序保証しない」ことは明記されています。
また、「明記されていないが、実は格納順になるのでは?」というのを実験して、「確実には格納順にならない」という実験結果を公開しているサイトもあります。
例外的にSQL Serverでは、「order by指定なし」でプライマリキー順を保証しているようですが、これは例外中の例外と言えます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- MySQL MYSQL エラー 2 2022/10/18 11:37
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
レコードの登録順がおかしい
MySQL
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
GROUP BYを行った後に結合したい。
Oracle
-
-
4
件数とデータを同時に取得するには?
Oracle
-
5
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
6
Accessのコンボボックスの値が消える
Excel(エクセル)
-
7
Viewにインデックスは張れますか?
Oracle
-
8
ビューで引数を使いたい
SQL Server
-
9
テーブルレーコードをソートして更新するにはどうしたらいいでしょうか?
SQL Server
-
10
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
11
メッセージボックスで1025文字以上を扱う
Visual Basic(VBA)
-
12
Winmerge ファイルの中身は同じなのに黄色くなる
その他(OS)
-
13
データベースのINT型項目にNULLはNG?
MySQL
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLのVARCHARとVARCHAR2の違い
-
プライマリーキーの昇順でソー...
-
VBAで変数内に保持された二次配...
-
Excel VBA SelectedItems
-
Float型の時の計算結果がおかしい
-
-3.34 が -3.3399999999999999 ...
-
MYSQL バイナリデータ変換取得
-
経過時間(hhmmdd)をDATE型には...
-
オラクルのデータ型・通貨について
-
MySQLの型のサイズ指定で速度は...
-
データベースのフィールドのデ...
-
接続ができません
-
副問合せにLIKE文を使う方法は...
-
存在しているファイルがロード...
-
MYSQLのデータに「;」を入力
-
エクセルで連勤チェックをした...
-
C言語で変数の内容をINSERTする...
-
MySQL sleep が溜まる
-
2023年10月25日現在のMAMP ...
-
RPMのmysqlとmysql-serverの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLのVARCHARとVARCHAR2の違い
-
INT型は金額の型に使用するべき...
-
postgreSQLのデータ型
-
プライマリーキーの昇順でソー...
-
VBAで変数内に保持された二次配...
-
Float型の時の計算結果がおかしい
-
ヌル値は記憶容量を必要としな...
-
MySQLの型のサイズ指定で速度は...
-
経過時間(hhmmdd)をDATE型には...
-
データベースのフィールドのデ...
-
ブログサイトを作る時、mysqlは...
-
オラクルのデータ型・通貨について
-
AccessからOrcleのODBCリンクテ...
-
MysqlにURLを登録する方法
-
PDFをDBに格納する/取り出すには?
-
ハングル文字が入らない。
-
Excel VBA SelectedItems
-
insertでのエラーについて
-
DB2 INSERT時の格納順序
-
-3.34 が -3.3399999999999999 ...
おすすめ情報