mysql と php を phpmyadmin で使用します。パーティションベースのカウンターに大きな問題があり、それを改善したいのですが、私の SQL 知識ではそれができません。私はこのことにとても心を痛めています。
テーブルに重複データ用のカウンターを置きたいのですが、この値が重複値を取得した場合、値の後に数値が追加され、新しい値が見つかるまで 1 からやり直します。最終結果は次のようになります:
リーリーこのカウンターについては以前にも助けてもらったことがあるのですが、思ったように動作しませんでした。そして、phpmyadmin をリロードした後、フォームの挿入ボタンを押すと、フォームは次のようになります。 リーリー ###何が起きてる?書き換えの助けを求めているコードは次のとおりです:
リーリーこのコードを書き換えて、最初のテーブルの例のように、phpmyadmin で正常に動作する、番号付きの名前と重複を持つテーブルを作成できますか?ご協力をよろしくお願いいたします。私は問題のある中級 SQL ユーザーであることを覚えておいてください。
P粉5920854232024-01-11 10:44:21
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