gpt4 book ai didi

MySQL:修剪 *both* 空格和换行符

转载 作者:行者123 更新时间:2023-11-29 01:39:40 27 4
gpt4 key购买 nike

我有一个文本列,其内容在字符串的前后混合了换行符和空白字符。我正在尝试编写一个 SELECT 语句,它向我显示没有前导和尾随垃圾的内容。

以下查询修剪空格:

SELECT TRIM(column)
FROM table;

虽然这个修剪换行符:

SELECT TRIM('\n' FROM column)
FROM table;

我也试过 this answer但它不起作用:

SELECT TRIM(BOTH '\t' OR '\n' FROM TRIM(BOTH '\n' OR '\t' FROM TRIM(column)))
FROM table;

有没有办法消除前导字符和尾随字符的混合?

更新:我无法替换,因为我仍然希望空白/换行符出现在内容中时出现。

我有一些带有空格的字段,后面跟着一堆换行符,随后是更多的空格/换行符。因此,进退两难。

最佳答案

不幸的是TRIM(BOTH '\n' OR '\r' FROM myfield)不管用。所以下面的代码只修剪一个换行符 ( \r\n ) 语句,而不是多个:

SELECT TRIM(TRIM(BOTH '\n' FROM(TRIM(BOTH '\r' FROM myfield)))) FROM mytable

请注意,上面的语句不会修剪 <space>\r\n mytextmytext ,因为 \r\n不在开头。

MariaDB 的解决方案

如果您使用的是 MariaDB ( https://mariadb.com/kb/en/mariadb/pcre/ ),您可以使用正则表达式来解决您的问题。以下表达式从文本中删除所有空格前缀:

SELECT REGEXP_REPLACE(myfield, '^[\r\n ]*(.*)', '\\1') FROM mytable

关于MySQL:修剪 *both* 空格和换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28368785/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com