伙计们我需要帮助。
我正在使用Mysql / phpmyadim。
我有数据库with表,它存储人的名称和代码id。
+--------+---------+
| Name | code_id |
+--------+---------+
| Nazeer | MD-1 |
+--------+---------+我有10个联系人和身份证。我使用php程序来生成自动代码。
最近,我从excel文件中将更多的记录导入到数据库中,并将记录增加到5000+中。
我的php自动代码停止生成代码,在代码id上出现语法错误。
我发现我的excel导入有像MD-1、MD-2等代码id,我的程序使用了3位数字的自动代码,因为我的记录超过了数千,这4位会产生语法错误。
我做了一些关于解决这个问题的研究,答案是改变所有的2位数,例如。"MD-1“~ "MD-99”到"MD-001“~ "MD-099”,我的程序将再次工作。
因此,问题是如何在phpmyadmin sql中对其进行更改。我需要保留'MD-‘,并添加'0’,然后再添加相应的数字。
谢谢并感谢您的提前帮助。
雷格尔斯。
发布于 2014-05-19 10:48:27
这个sql将更新您的所有数据,但是正如我在注释中所说的,最好是修复您的php代码。
警告:此sql仅在假设所有数据为MD-xxx格式且其中包含3个或更少数字的情况下才能工作。
UPDATE your_table SET
code_id=case length(substr(code_id,4))
WHEN 1 THEN concat("MD-00",substr(code_id,4))
WHEN 2 THEN concat("MD-0",substr(code_id,4))
ELSE code_id END;发布于 2014-05-19 10:29:50
我假设您希望将内容MD-1更新为MD-001,将MD-99更新为MD-099。要做到这一点,您可以编写一个PHP代码来逐一检索行,并且必须匹配模式,然后进行更新。这里有一些有用的链接。链接1提示:您可以检查5位字符串,然后在3的位置添加另一个0。(使用利用链接1按"-“拆分,然后与"-0”2连接)没有办法仅通过使用MYSQl进行相同的操作,因为它不是一种编程语言。另一件事是PHP不是一个程序。这是一种编程语言。
发布于 2014-05-19 10:37:43
运行UPDATE查询并使用CONCAT函数:
for ($x=0; $x=<upto>; $x++){
UPDATE <table_name>
SET <columnname>= CONCAT('MD-',0,$x)
WHERE <columnname>= CONCAT('MD-',$x)
}https://stackoverflow.com/questions/23735057
复制相似问题