我正在尝试创建一个清理表,用整数替换 varchar(50) 字段。原始字段偶尔有我想转换为 0 或空值的文本值。我可以在 select 语句中执行此操作,但在尝试创建表时会出错。
下面是一个使用字符串的最小示例:
/* This works */
DROP TABLE IF EXISTS mytest;
CREATE TABLE mytest
AS
SELECT convert("123", unsigned) AS mynum;
/* This works, returning a row of 0 */
SELECT convert("TEST", unsigned) AS mynum;
/* But this fails, with: Truncated incorrect INTEGER value: 'TEST'*/
DROP TABLE IF EXISTS mytest;
CREATE TABLE mytest
AS
SELECT convert("TEST", unsigned) AS mynum;`
以上有什么问题,有没有更好的方法来完成我想要的?谢谢您的帮助。