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

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

WBOY
WBOYオリジナル
2016-06-23 14:05:21985ブラウズ

Windows版XAMPP v3.1.0を使用しています。
PHPでレコードを挿入した後、最後に挿入されたレコードがPHPMyAdminの最後のレコードではないことがわかったので、結果のヘッダーのIDをクリックすると、クエリ結果がIDで昇順に並べ替えられ、上記のようになりました。クエリ文もこうなりました:
SELECT *
FROM table
ORDER BY table.`id` ASC
LIMIT 0, 30
変更する場合は、SELECT * FROM table部分のみ変更可能で、以下は変更できません。
さらに、主キー並べ替えの後ろにあるドロップダウン リストをクリックしても応答がなく、ORDER BY 句を削除できません。
奇妙なのは、このテーブルをエクスポート後に削除したのに、インポート時に ORDER BY 句がまだ残っていたことです。

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

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

1 xx
2 ss
3 rr
5 ee
4 ww
1 xx
2 ss
3 rr
6tt
5ええ
4 ww

しかし、テーブル構造をインポートしただけで、それをPHPで挿入したところ、正常でした。ただし、挿入するとき、ID は 0 から始まりませんが、次のように、前回使用した次の ID になる比較的大きな数字になります。
40 gg
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 テーブル名
を使用すると、テーブルをクリアして「自動インクリメント」をリセットできます

最初のコマンドは次のとおりですORDER BY 句を削除する方法

もう一度クリックします


2 番目のレコードは PHP を使用して挿入されています PHPMyAdmin で表示すると、最後のレコードが最後のレコードではないのはなぜですか? それが最後のレコードであるかどうかは、主キーの値とソートに依存します。 3つ目は、ORDER BYを使用しない結果の順序がデータベース内の物理的な順序であるかどうかです。 順序
デフォルトのソートは主キーの昇順です
物理的な順序として理解できます
データを挿入する前に実行します
SET SQL_MODE ="NO_...
30 ポイント追加されました。

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