ホームページ >バックエンド開発 >PHPチュートリアル >【回答に満足すればボーナスポイントプレゼント】 PHPMyAdminでは、テーブル閲覧ページで主キーソートを一度選択するだけで、再度主キーソートなしを選択することはできません。

【回答に満足すればボーナスポイントプレゼント】 PHPMyAdminでは、テーブル閲覧ページで主キーソートを一度選択するだけで、再度主キーソートなしを選択することはできません。

WBOY
WBOYオリジナル
2016-06-13 12:48:36829ブラウズ

[満足のいく回答にはボーナス ポイント] PHPMyAdmin では、テーブル参照ページで主キー ソートを 1 回選択するだけでよく、再度主キー ソートなしを選択することはできません

この投稿は shendaowu によって最後に投稿されました: 2013- 04-06 21:32 :01 編集 Windows版XAMPP v3.1.0を使用しています。
PHP を使用してレコードを挿入した後に挿入された最後のレコードが PHPMyAdmin の最後のレコードではないことがわかったので、結果のヘッダーの ID をクリックすると、クエリ結果が ID で昇順に並べ替えられました。クエリステートメントも次のようになりました:
選択 *
テーブルから
ORDER BY table.`id` ASC
リミット0、30
変更する場合は、SELECT * FROM テーブル部分のみ変更可能で、以下は変更できません。
また、主キーソート後のドロップダウンリストをクリックしても無反応となり、ORDER BY句を削除することもできません。
奇妙なことに、テーブルをエクスポートして削除した後、インポートしたときに ORDER BY 句がまだ残っていたのです。

3 つの質問があります。1 つ目は、PHP を使用して挿入された最後のレコードが、PHPMyAdmin で表示されたときに最後のレコードではない理由です。データベース内の物理的な順序は?

--------------------------------------------------
私はそれを自分で復元し、インターフェースエラーが発生したテーブルに対応するレコードを削除してサービスを再起動した後、それはphpmyadminデータベースのpma_table_uiprefsテーブルに保存されました。そのテーブル内の BLOB ファイルを見てみると、PHPMyAdmin インターフェイスの一部の構成のようですが、削除すると問題が発生するのでしょうか? ORDER BY 句を削除すると、順序が再び崩れます。
--------------------------------------------------
言っていないことがいくつかあります:
そのテーブルの主キーを自動インクリメント主キーに設定します。 PHP で挿入する前に、次のようなデータをインポートしました。
1xx
2SS
3rr
次にPHPで挿入します。複数回挿入すると、次のようになります:
1xx
2SS
3rr
4ww

1xx
2SS
3rr
5ee
4ww

1xx
2SS
3rr
6 tt
5ee
4ww

しかし、テーブル構造をインポートしただけで、それをPHPで挿入したところ、正常でした。ただし、挿入するとき、ID は 0 から始まりません。次のように、前回使用した次の ID となる比較的大きな数値になります。
40gg
41 ii
どうすれば0からスタートできるのでしょうか? (それとも1ですか?)

ポイントを無駄にしたくないので、ポイントを貯めておいたほうがいいです。納得のいく回答があれば加点させていただきますが、完全に解決できればphpmyadminデータベースのテーブルのレコードを直接削除しても問題ないかも含めて80点加点させていただきます。

-----解決策--------------------------------
SQL を実行します:
alter table '你的表名' AUTO_INCREMENT=1

前提条件は、現在のテーブル データが空であることです。
------解決策-----
最初の方法は、ORDER BY 句を削除する方法です
もう一度クリック

2 番目の理由は、PHP を使用して挿入された最後のレコードが、PHPMyAdmin で表示されたときに最後のレコードではない理由です
最後の項目が表示されるかどうかは、主キーの値と並べ替え方法
によって決まります。
3 番目は、ORDER BY を使用しない結果の順序がデータベース内の物理的な順序であるかどうかです
デフォルトの並べ替えは主キーの昇順です
物理的な秩序として理解できる

データを挿入する前に実行
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
「自動インクリメント」を無効にすることもできますが、主キーが一意であることを確認する必要があります

コマンド
TRUNCATE TABLE テーブル名
テーブルをクリアして「自動インクリメント」をリセットできます
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。