「パーティションベースのカウンタ書き換え」
P粉618358260
P粉618358260 2024-01-10 17:44:52
0
1
504

mysql と php を phpmyadmin で使用します。パーティションベースのカウンターに大きな問題があり、それを改善したいのですが、私の SQL 知識ではそれができません。私はこのことにとても心を痛めています。

テーブルに重複データ用のカウンターを置きたいのですが、この値が重複値を取得した場合、値の後に数値が追加され、新しい値が見つかるまで 1 からやり直します。最終結果は次のようになります:

リーリー

このカウンターについては以前にも助けてもらったことがあるのですが、思ったように動作しませんでした。そして、phpmyadmin をリロードした後、フォームの挿入ボタンを押すと、フォームは次のようになります。 リーリー ###何が起きてる?書き換えの助けを求めているコードは次のとおりです:

リーリー

このコードを書き換えて、最初のテーブルの例のように、phpmyadmin で正常に動作する、番号付きの名前と重複を持つテーブルを作成できますか?ご協力をよろしくお願いいたします。私は問題のある中級 SQL ユーザーであることを覚えておいてください。

P粉618358260
P粉618358260

全員に返信(1)
P粉592085423

Possible solution - BEFORE INSERT trigger and additional MyISAM table with secondary autoincrement:

Working table

Additional table

Trigger

Insert rows - the AI index is added to the name. Check the result.

Look what is stored in additional table now.

db<>fiddle here


If your working table user exists already, and it contains some data, then you'd create additional table and fill it with data using, for example,

CREATE TABLE user_index (id INT AUTO_INCREMENT,
                         name VARCHAR(127),
                         PRIMARY KEY (name, id)) ENGINE=MyISAM
SELECT MAX(SUBSTRING_INDEX(name, '-', -1) + 0) id,
       SUBSTRING_INDEX(name, '-', 1) name
FROM user
GROUP BY 2;

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=38f028cfe1c9e85188ab0454463dcd78

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート