Tôi cần MySQL để lưu trữ số trong trường số nguyên và duy trì số 0 đứng đầu. Tôi không thể sử dụng tùy chọn zerofill vì trường hiện tại của tôi là Bigint (16) và các số có thể khác nhau về số lượng các số 0 đứng đầu. IE: 0001 - 0005, sau đó 008 - 010 có thể cần được lưu trữ. Tôi không quan tâm về tính duy nhất của các con số (chúng không được sử dụng như ID hoặc bất kỳ thứ gì) nhưng tôi vẫn cần chúng được lưu trữ tốt nhất là INTS.Lưu trữ số không đầu tiên của số nguyên trong cơ sở dữ liệu MySQL như INTEGER
Vấn đề sử dụng CHAR/VARCHAR và sau đó typecasting các giá trị là số nguyên trong PHP có nghĩa là sắp xếp kết quả thông qua các truy vấn dẫn đến chữ và số phân loại, IE: Sắp xếp số ASC sẽ tạo ra
001
002
003
1
100
101
102
2
Rõ ràng không theo số thứ tự , nhưng theo thứ tự chữ và số, điều này không được mong muốn.
Hy vọng đối với một số cách giải quyết thông minh :)
số nguyên không * đã * zero hàng đầu. Chỉ có các biểu diễn chuỗi của chúng có thể. Vì vậy, nếu bạn "cần" zeroes hàng đầu, bạn sẽ phải lưu trữ một chuỗi đại diện. Tại sao bạn không thể thực hiện loại định dạng này ở thời gian hiển thị, thay vì đặt nó trong cơ sở dữ liệu? –
1 và 001 và các giá trị khác nhau. Nhưng như int họ là như nhau: làm thế nào nên được sắp xếp và so sánh? như int hoặc như varchar? – gbn