我有一个包含两个字段(国家和 ISO 代码)的表格:
Table1
field1 - e.g. 'Afghanistan' (without quotes)
field2 - e.g. 'AF'(without quotes)
在某些行中,第二个字段的开头和/或结尾有空格,这会影响查询。
Table1
field1 - e.g. 'Afghanistan' (without quotes)
field2 - e.g. ' AF' (without quotes but with that space in front)
有没有办法(在 SQL 中)遍历表并查找/替换字段 2 中的空格?
最佳答案
您正在寻找 TRIM .
UPDATE FOO set FIELD2 = TRIM(FIELD2);
似乎值得一提的是,TRIM 可以支持多种类型的空格,但一次只能支持一种,并且默认情况下会使用空格。但是,您可以嵌套 TRIM
s。
TRIM(BOTH ' ' FROM TRIM(BOTH '\n' FROM column))
如果您真的想在一次调用中摆脱 所有 空格,最好使用 REGEXP_REPLACE
和 [[:space: ]]
符号。这是一个例子:
SELECT
-- using concat to show that the whitespace is actually removed.
CONCAT(
'+',
REGEXP_REPLACE(
' ha ppy ',
-- This regexp matches 1 or more spaces at the beginning with ^[[:space:]]+
-- And 1 or more spaces at the end with [[:space:]]+$
-- By grouping them with `()` and splitting them with the `|`
-- we match all of the expected values.
'(^[[:space:]]+|[[:space:]]+$)',
-- Replace the above with nothing
''
),
'+')
as my_example;
-- outputs +ha ppy+
关于mysql - 如何删除 MySQL 字段中的前导和尾随空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6858143/