我正在使用从纯文本数据库到对INSERT
查询SELECT
更友好的数据库的查询。为了避免与不必要的信息混淆,以下内容进行了很多简化,如果为了清楚起见我简化得太多了,请告诉我,我会修改。
源数据如下所示:
| 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 语法旨在null
根据需要保留 s 。
另外,当我在这里时,如果您碰巧知道SELECT
MySQL 的当前时间戳,那也会很有帮助。