【发布时间】:2020-02-16 19:49:53
【问题描述】:
【问题讨论】:
-
notes 列可能有大量尾随空格或其他一些意外数据,导致格式出错。尝试检查每一列的内容,直到出现格式错误。
-
@markusjm 感谢您的回复,我添加了更多屏幕。我认为问题出在注释栏中,但我不确定为什么。我将该列的数据类型更改为文本,但仍然是同样的问题。
【问题讨论】:
您应该能够使用REGEXP_REPLACE 函数来显示没有尾随和前导空格的值:
SELECT REGEXP_REPLACE(REGEXP_REPLACE(notes, '^\\s*', ''), '\\s*$', '')
FROM food1_test;
内部'^\\s*' 模式匹配所有前导空格,外部'\\s*$' 模式匹配所有尾随空格。
您还可以使用以下 SQL 对数据进行就地更新:
UPDATE food1_test SET
notes = REGEXP_REPLACE(REGEXP_REPLACE(notes, '^\\s*', ''), '\\s*$', '');
您也可以使用TRIM,但它只替换特定的字符串,并且不适用于非空格空白字符。
正如 Rick James 所说,在将输入放入数据库之前对其进行清理和清理非常重要。
【讨论】:
数据来自非 Mac 来源?而且它有不同类型的行终止符?
在存储数据之前删除尾随空格(回车/换行)。
【讨论】: