繁体   English   中英

在给定范围内查找数字MySQL SQL

[英]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

当使用相同的值与其他值连接时,填充的零不会丢失。

范例
如果stockCode6并且stockCurrentNumber9

concat( stockCode, stockCurrentNumber )

将得到6009

参见MySQL:SMALLINT [(M)] [未签名] [零填充]

我不确定我是否了解您:

这是创建具有复合主键的表的方式,请注意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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM