表:
CREATE TABLE `table` (
`id` int(11) NOT NULL,
`status` enum('on','off') NOT NULL DEFAULT 'off',
PRIMARY KEY (`id`),
)
Run Code Online (Sandbox Code Playgroud)
我可以使用枚举索引值来更新或插入:
update table set status=1 where id=12(更新id = 2 status到on)
但是在java中,Enum字段类型总是返回String (在这里查看)
select status from table where id=2
或使用resultSet.getObject("status")(java)
总是返回String on,但我想得到整数1
这可能吗?
SELECT
CAST(`status` AS UNSIGNED) AS numerical_status
FROM `table`
Run Code Online (Sandbox Code Playgroud)
陷阱:这是从1开始的,所以你得到1 on和2off
编辑
如果您不能使用计算字段(无论出于何种原因),请创建一个视图:
CREATE OR REPLACE VIEW `table_numstatus` AS
SELECT `id`, CAST(`status` AS UNSIGNED) AS `status`
FROM `table` ;
Run Code Online (Sandbox Code Playgroud)
并将您的查询指向此视图,而不是表格.
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |