Java 如何提取数字?
我有一个这样的数据库:Java 如何提取数字?,java,mysql,sql,primary-key,composite-primary-key,Java,Mysql,Sql,Primary Key,Composite Primary Key,我有一个这样的数据库: stockCode stockName stockStart stockFinish stockCurrentNumber __________________________________________________________ 100 Water 1 10 ? 现在我该如何编码,使它看起来像这样 stockCode stockName stockStart stockFinish stockC
stockCode stockName stockStart stockFinish stockCurrentNumber
__________________________________________________________
100 Water 1 10 ?
现在我该如何编码,使它看起来像这样
stockCode stockName stockStart stockFinish stockCurrentNumber
__________________________________________________________
100001 Water 1 10 001
100002 Water 1 10 002
100003 Water 1 10 003
100004 Water 1 10 004
100005 Water 1 10 005
100006 Water 1 10 006
100007 Water 1 10 007
100008 Water 1 10 008
100009 Water 1 10 009
100010 Water 1 10 010
如果有人能帮忙,我将不胜感激
抱歉,编辑,我只有一条记录,希望它在stockStart到stockFinish的范围内重复
SELECT
CONCAT(`stockCode`,lpad(@sno + 1,3,0)) stockCode,
`stockName`,
`stockStart`,
`stockFinish`,
@sno := lpad(@sno + 1,3,0) AS stockCurrentNumbe
FROM Table1,
(SELECT @sno := 000) t
编辑
对于更新,您可以使用下面的查询创建新表(供参考),完成后,您可以将表重命名为实际表,下面的示例中,我使用了int()
not smallint
CREATE TABLE Table2
(`stockCode` int(11),
`stockName` varchar(5),
`stockStart` int,
`stockFinish` int,
`stockCurrentNumber` int(11))
;
INSERT INTO Table2
(`stockCode`,
`stockName`,
`stockStart`,
`stockFinish`,
`stockCurrentNumber`)
SELECT
CONCAT(`stockCode`,lpad(@sno + 1,3,'0')) stockCode,
`stockName`,
`stockStart`,
`stockFinish`,
@sno := lpad(@sno + 1,3,'0') AS stockCurrentNumber
FROM Table1,
(SELECT @sno := 000) t
;
表2的stockCurrentNumber
列中的数据将具有不带前导零的数据,因为数据类型为整数且001=1,因此对于前导零,您可以使用lpad(stockCurrentNumber,3,'0')获取结果
有关更多信息,请参见查询,查询并不困难。我刚刚使用变量为stockCurrentNumber
列生成自动递增值,并将自动递增值和stockCode
等值组合为CONCAT(
stockCode,lpad(@sno+1,3,'0'))stockCode
,希望它有意义
第一列和最后一列的数据类型是什么?@BhupeshC它们都是
SMALLINT
。如何从stockStart到stockFinish提取所有数字并将其插入stockCurrentNumber?如果最后一列是SMALLINT,它如何显示前面的0?请粘贴表DDL Hi,请您向我解释一下这段代码。另外,如何将其作为update语句来执行?我试着在表1中插入值(CONCAT(stockCode,lpad(@sno+1,3,0))stockCode,
stockName,
stockStart,
stockFinish,@sno:=lpad(@sno+1,3,0)作为stockcurrentnumber
)`但我一直收到这个错误`你的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第2行“对不起,”'stockCode、stockName
、stockStart
、stockFinish
、@sno:=lpad(@sno+1,3,0))附近使用的正确语法,你能帮我修改你的代码,使它在我目前正在测试的更新数据库上工作吗please@user3138212你可以选择。。。。。。。。从……进入。。。。或者在表2中进行嵌套插入选择……………@user3138212查看我的更新答案并