Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để chọn tối đa của cột chuỗi / int hỗn hợp trong MySQL?

Để chọn tối đa của cột hỗn hợp chuỗi / int, bạn cần sử dụng hàm substring (). Cú pháp như sau:

 CHỌN TỐI ĐA (CAST (SUBSTRING (yourColumnName, 4, length (yourColumnName) -3) AS UNSIGNED)) AS anyVariableName FROM yourTableName; 

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau:

 mysql> tạo bảng StringIntMixHighestDemo -> (-> InvoiceId int NOT NULL AUTO_INCREMENT, -> InvoiceNumber varchar (20), -> PRIMARY KEY (InvoiceId) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,65 giây)  

Bây giờ bạn có thể chèn một số bản ghi trong bảng bằng cách sử dụng lệnh insert. Truy vấn như sau:

 mysql> chèn vào giá trị StringIntMixHighestDemo (InvoiceNumber) ('INV129'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> chèn vào giá trị StringIntMixHighestDemo (InvoiceNumber) ('INV122'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,22 giây) mysql> chèn vào giá trị StringIntMixHighestDemo (InvoiceNumber) ('INV1'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây) mysql> chèn vào giá trị StringIntMixHighestDemo (InvoiceNumber) ('INV145'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,18 giây) mysql> chèn vào giá trị StringIntMixHighestDemo (InvoiceNumber) ('INV19'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,10 giây) mysql> chèn vào giá trị StringIntMixHighestDemo (InvoiceNumber) ('INV134'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,13 giây) mysql> chèn vào giá trị StringIntMixHighestDemo (InvoiceNumber) ('INV135'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,16 giây) mysql> chèn vào giá trị StringIntMixHighestDemo (InvoiceNumber) ('INV10'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,14 giây) mysql> chèn vào các giá trị StringIntMixHighestDemo (InvoiceNumber) ('INV100'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> trong chuyển vào giá trị StringIntMixHighestDemo (InvoiceNumber) ('INV121'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,27 giây) 

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau:

 mysql> select * từ StringIntMixHighestDemo; 

Sau đây là kết quả:

 + ----------- + --------------- + | InvoiceId | InvoiceNumber | + ----------- + --------------- + | 1 | INV129 || 2 | INV122 || 3 | INV1 || 4 | INV145 || 5 | INV19 || 6 | INV134 || 7 | INV135 | | 8 | INV10 || 9 | INV100 || 10 | INV121 | + ----------- + --------------- + 10 hàng trong bộ (0,00 giây) 

Đây là truy vấn để lấy giá trị lớn nhất trong cột string / int. Truy vấn như sau:

 mysql> CHỌN MAX (CAST (SUBSTRING (InvoiceNumber, 4, length (InvoiceNumber) -3) AS UNSIGNED)) làm HighestValue -> from StringIntMixHighestDemo; 

Sau đây là kết quả:

 + -------------- + | HighestValue | + -------------- + | 145 | + -------------- + 1 hàng trong bộ (0,00 giây)