[英]Finding numbers in a given range MySQL SQL
我的表的DDL模式看起来像这样...
CREATE TABLE StockCodes (
stockCode SMALLINT AUTO_INCREMENT,
stockName VARCHAR(100),
stockStart SMALLINT,
stockFinish SMALLINT,
stockCurrentNumber SMALLINT
);
如何实现stockCurrentNumber,这样我就可以获得记录列表,例如... stockCurrentNumber 001、002、003、004、005。
另外,如何捆绑stockCode和stockCurrentNumber以形成复合主键。
另外,删除库存时如何删除单个stockCurrentNumber?
我真的很感谢任何帮助
在列上使用ZEROFILL
进行定义。
stockCurrentNumber smallint(3) unsigned zerofill
这将导致该列中的所有插入均以0
开头。
范例 :
插入1
,它将存储为001
。 您可以与实际值进行比较,例如field = 1
。
当使用相同的值与其他值连接时,填充的零不会丢失。
范例 :
如果stockCode
为6
并且stockCurrentNumber
为9
则
concat( stockCode, stockCurrentNumber )
将得到6009
。
我不确定我是否了解您:
这是创建具有复合主键的表的方式,请注意stockCurrentNumber
为varchar,不要丢失左0
CREATE TABLE StockCodes (
stockCode SMALLINT AUTO_INCREMENT,
stockName VARCHAR(100),
stockStart SMALLINT,
stockFinish SMALLINT,
stockCurrentNumber varchar(255),
PRIMARY KEY(stockCode, stockCurrentNumber)
);
然后删除:
DELETE FROM StockCodes WHERE stockCode='x' AND stockCurrentNumber='y';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.