我在mysql表中有一個字段(demo_field)(varchar)。我想用預定義的前綴增加這個字段值。 例如,我的字段第一個值是demo001
。現在,當插入新值時,我想增加數字數字,如demo002, demo003
。 如何使用PHP來做到這一點。如何在mysql中增加默認值
回答
試試這個 -
//fetch data from table
$sql = $mysqli->query('select count(demo_field) as total,demo_field from tablename limit 1');
$res = $sql->fetch_assoc();
//generate string from existing data
$str = substr($res['demo_field'], 0, 4);
$dig = str_replace($str, '', $res['demo_field']);
$dig = $dig+$res['total'];
//add padding if needed
$dig = str_pad($dig, 3, '0', STR_PAD_LEFT);
//concatenate string & digits
$newStr = $str.$dig;
var_dump($newStr);
的另一種方式,而不計
$sql = $mysqli->query('select max(demo_field) as demo_field from demo');
$res = $sql->fetch_assoc();
$str = substr($res['demo_field'], 0, 4);
$dig = str_replace($str, '', $res['demo_field']);
$dig += 1;
$dig = str_pad($dig, 3, '0', STR_PAD_LEFT);
$newStr = $str.$dig;
var_dump($newStr);
希望這種情況可能與count
解決問題。
與最大計數另一種解決方案爲字母數字字符串,並沒有填充 -
$sql = $mysqli->query('select max(cast(substring(demo_field, 5) as unsigned)) as digit, demo_field from demo');
$res = $sql->fetch_assoc();
$str = substr($res['demo_field'], 0, 4);
$dig = $res['digit'] + 1;
$newStr = $str.$dig;
var_dump($newStr);
是的。目前我使用這種方法。我只是想知道插入時是否可以直接(一些如何)增加值。謝謝@sgt – 2014-11-04 06:32:40
你將如何增加一個字符串,而無需在PHP中進行字符串操作? – 2014-11-04 06:35:26
此外還有一個小缺點。考慮到生成號碼並不是一個好主意。因爲如果我們刪除幾個值,然後根據計數生成數字可能會創建重複值 – 2014-11-04 06:37:07
//use PHP not mysql
$pre = 'demo';
$num = 0;
define('MAX', 100);
for($num = 0; $num < MAX; $num++)
{
$pre_str = $pre . sprintf("%03d", $num);
//insert here
}
嗨,這種方法不能使用。我們必須檢查表中已經存在的值,然後增加 – 2014-11-04 06:30:04
...我不知道你想要做什麼然後-..- – lkxiaolou 2014-11-04 06:38:47
,你必須使用一個INT領域 和它翻譯成你想在「選擇」時間的任何格式。
在MySQL中,我們不能使用AutoIncrement for Varchar。
這是錯誤的。可以辦到。 – 2014-11-04 06:53:11
你能舉一些例子嗎? – 2014-11-06 07:09:04
http://stackoverflow.com/a/17894239/和同一頁內http://stackoverflow.com/a/26728953/ – 2014-11-06 07:10:31
- 1. 默認值在mysql表中
- 2. mysql默認值?
- 3. mysql默認值
- 4. 默認值不會在MySQL
- 5. 如何設置默認值,同時增加了新列
- 6. 如何自動增加texbox的默認值
- 7. 增加默認大小
- 8. mySQL $ REQUEST默認值
- 9. MySQL BLOB默認值
- 10. 如何設置默認值的MySQL
- 11. 如何獲取通常在Django中增加的字段的默認值?
- 12. postgresql表中的默認遞增值
- 13. 默認值在MySQL表中ID
- 14. 在默認MySQL值中執行計算
- 15. 在MySQL中插入默認值+30天
- 16. 在mysql Id列中設置默認值?
- 17. 如何在mysql中使用函數uuid()設置默認值?
- 18. 如何在mysql中爲外鍵列設置默認值
- 19. 如何在MySql中將默認值設置爲sysdate?
- 20. 如何增加odoo中的默認內存使用量?
- 21. 如何從Jquery-UI圖標集中增加默認大小16px?
- 22. 強制默認值增加表列中時 - SQL服務器
- 23. 如何將默認值添加到RadComboBox?
- 24. 如何向EditText添加默認值:android
- 25. MySQL智能默認值
- 26. MySQL的默認值 - YEAR(CURRENT_DATE)
- 27. MySQL 5.5和5.6默認值
- 28. MySQL函數列默認值
- 29. MySQL選擇默認值
- 30. MySQL默認值問題
在mysql中添加'AUTO_INCREMENT'並省略PHP中的'insert'字段 – 2014-11-04 06:09:43
如何做到這一點?爲此,我們需要設置一個默認值?我也需要字母字符。如果我們給auto_increment,我們不能添加字母字符 – 2014-11-04 06:13:47