【发布时间】:2013-03-19 13:49:22
【问题描述】:
我正在使用SELECTs 从纯文本数据库到查询更友好的数据库的INSERT 查询。为了避免与不必要的信息混淆,以下内容进行了很多简化,如果我为了清楚起见而简化得太多了,请告诉我,我会修改。
源数据如下:
| id (integer) | SomeCol (varchar) | BooleanCol (varchar) |
----------------------------------------------------------------------------
| 1 | 'String Data' | 'true' |
| 2 | 'Other Data' | 'false' |
在我的INSERT查询之后,目标表需要如下所示:
| id (integer) | SomeCol (varchar) | BooleanCol (tinyint(1)) |
-------------------------------------------------------------------------------
| 1 | 'String Data' | 1 |
| 2 | 'Other Data' | 0 |
我正在寻找或多或少像这样工作的东西,借用一点 java 语法:
INSERT INTO target(SomeCol, BooleanCol)
SELECT SomeCol, (BooleanCol IS NOT NULL ? (BooleanCol == 'true' ? 1 : 0) : null)
FROM source
请注意,作为我想要的示例提供的 java 语法旨在根据需要保留 nulls。
另外,当我在这里时,如果你碰巧知道SELECT 来自 MySQL 的当前时间戳,那也会很有帮助。
【问题讨论】:
标签: mysql boolean insert-into string-conversion