1

たとえば、次のコードがあります。

PC_MB_TC_0001
PC_GH_TY_0002
PS_AB_VH_0003
IC_WC_XX_0001
IH_ML_FR_0002

これらのコードはシステムによって生成されます。私は次のロジックを使用しました。「P」で始まるコードの数を最初に見つけました。次に、そのカウントに 1 を追加します。このロジックは完全に機能していますが、コードがデータベースから削除されると失敗します。これを行うためのMySQLクエリはありますか、または誰かが他のロジックで私を助けてくれますか?

私はcakePhPを使用しています。

前もって感謝します

4

3 に答える 3

0

あなたは試すことができます

SELECT 1+MAX(CONVERT(RIGHT(your_column_name, 4), SIGNED)) as newindex
FROM your_table
WHERE your_column_name LIKE 'P%';
于 2012-08-23T12:28:59.523 に答える
0

見てみるといいかもしれません

echo $this->ModelName->getInsertID();

また

echo $this->ModelName->getLastInsertID();

これらは、MySQL レコードの最後に挿入された ID を取得します。次に、その ID のコード値を調べることができます。

于 2012-08-23T16:47:40.043 に答える
0

MyISAM を使用できる場合は、作業を行う複数列の自動インクリメントを作成できます。このソリューションを機能させるには、文字列と自動インクリメント番号を別々の列に保存する必要があります。

MyISAM テーブルの場合、複数列インデックスのセカンダリ列に AUTO_INCREMENT を指定できます。この場合、AUTO_INCREMENT 列の生成値は、MAX(auto_increment_column) + 1 WHERE prefix=given-prefix として計算されます。

于 2012-08-23T12:27:38.940 に答える