私は個人的な使用のために医者用の小さなソフトウェアで作業しています。彼は患者の一意のIDが月、年、年の組み合わせであることを望んでいます。例えば2016年7月の5番目の患者のIDは2016-07-05でなければなりません。月が変わると、idは再び1にリセットされます。それはどのようにmysqlのDBで達成することができますか?私はPHPコードでそれを行うことができますが、私はデータベーステーブルでそれを行い、毎回実行するコードの行を保存したい。私は周りを検索したが、解決策を見つけることができなかった。 助けてください。Genrate月と日付に基づく一意のID MYSQL
0
A
答えて
0
あなたはのようなものを使用することができます。
CONCAT(YEAR(NOW()),'-',MONTH(NOW()), '-', IFNULL((SELECT MAX(P) FROM person WHERE <...>)+1,1));
しかし、それはどこかにカウンターを持っている必要があります。
0
この問題は、テーブル内のid
よりもわずかな操作で解決できます。月または年が、その後変更されていない場合
最後の人が
2016-09-id
用などして所属何月知っているIDのプレフィックスのみを比較するだけ2016-09-
現在の日付とを比較し、我々は最大のIDを見つけますそして唯一の人物のIDを比較していずれかでそれをインクリメントし、他の
は、我々は1
テーブルperson(id, name)
のクエリ例を次に示します。
insert into person(id, name)
select if(max(id) is null, concat(date_format(now(), '%Y-%m-'), '1'),
if(max(substr(id, 1, 8)) = date_format(now(), '%Y-%m-'),
concat(date_format(now(), '%Y-%m-'),
max(substr(id, 9)+1)),
concat(date_format(now(), '%Y-%m-'), 1))) as nextid, 'lastperson'
from person;
関連する問題
- 1. 日付(月)とグループに基づくクエリのC#分割結果
- 2. Codeigniterの今月の日付に基づくMySQL結果の取得
- 3. SQL Serverの月と日に基づく誕生日のリスト
- 4. PHPとMYSQL日付に基づくレコードの検索
- 5. フィルタイベントログに基づく日付
- 6. 月と日(任意の年)のMySql日付範囲の検索
- 7. 日付を含む月に基づく変換年
- 8. MySql - 多対多ピボットテーブルの値に基づく一意のキー
- 9. 日付に基づいて一意のIDごとに最初の2つのエントリを削除します
- 10. 日付と日付に基づくSQLクエリ
- 11. 個々の日付と一意のIDに基づいて特定の列を合計する方法
- 12. 現在の日付(今日の日付)に基づくレコード数
- 13. 日付の範囲に基づく開始日/終了日のオブジェクトに一致
- 14. SVNの日付に基づくタグ
- 15. 日付に基づくフォルダファイルのフィルタリング
- 16. シート - 別の列の日付に基づく列内のセル(日付)に基づく条件付き書式
- 17. 条件に基づく月
- 18. SQLクエリ - 現在の日付に基づく動的月の変更
- 19. IDと日付に基づくRの結合テーブル、複雑なローリング結合?
- 20. 日付ロジックに基づくケースサブクエリ
- 21. 日付に基づく可変列
- 22. 日付に基づくグループ化テーブル
- 23. 日付に基づくSQLフィルタリング
- 24. 日付に基づくpysvnエクスポート
- 25. PL/SQL - 頻度に基づく日付
- 26. 日付範囲に基づくフィルタ列
- 27. 日付に基づく合計値
- 28. 日付範囲に基づくDLookup
- 29. 日付配列に基づくLINQクエリレコード
- 30. Excelの日付と値に基づく条件付き書式