2016-08-12 12 views
5

Khi tôi chạy một Statment chọn nhưMySQL loại cột trả về số thập phân hoặc bigint khi tôi chạy "SELECT 0 AS COL .."

SELECT 0 AS COL FROM MYTABLE .. 

Hai cài đặt mysql khác nhau trả về kiểu dữ liệu khác nhau. Một trả về BIGINT thứ hai là DECIMAL. cho cả hai trường hợp trình điều khiển JDBC là giống nhau và com.mysql.jdbc.Driver 5.1

Server phiên bản: 5.1.69-cộng đồng (trả BIGINT) 5.6.31 (trả DECIMAL)

Có sự khác biệt cấu hình ? Tôi phải nhận được BIGINT cho cả hai bản cài đặt. có liên quan trực tiếp với phiên bản mysql không?

+0

Bạn đang sử dụng JDBC? Nếu vậy tôi mong đợi nó sẽ phụ thuộc vào phiên bản JDBC bạn đang sử dụng (có thể do MySQL cung cấp). –

+0

@Ole V.V. có jdbc com.mysql.jdbc.Driver 5.1 – bahtiyartan

+1

Phiên bản 5.1.69 của chúng tôi xuất hiện vào ngày 18 tháng 4 năm 2013. Đã đến lúc nâng cấp? –

Trả lời

2

Bạn có thể buộc các vấn đề với

select CAST(0 AS UNSIGNED INTEGER) AS COL 

số nguyên Unsigned xuất hiện trên dây như bigints.

+0

Có họ là phiên bản khác nhau: Một là 5.1.69-cộng đồng (lợi nhuận bigint) 5.6.31 (lợi nhuận thập phân) – bahtiyartan

+0

ok nhưng có quá nhiều điểm của nó trong ứng dụng của tôi có sử dụng CHỌN 0 AS. Không thể thay đổi tất cả trong một khoảng thời gian hợp lý. – bahtiyartan

Các vấn đề liên quan