Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除MySQL中varchar字段开头和结尾的选项卡?_Mysql - Fatal编程技术网

如何删除MySQL中varchar字段开头和结尾的选项卡?

如何删除MySQL中varchar字段开头和结尾的选项卡?,mysql,Mysql,我在mysql数据库中有一个字段,它是varchar(255)。我已经研究过trim()来删除前导和尾随空格,但它似乎只处理空格,而不处理制表符: UPDATE mytable SET textfield = TRIM(textfield); 有人知道如何同时从字段的开始和结束处剥离选项卡吗?您尝试过吗 UPDATE mytable SET email = REPLACE(TRIM(email), CHAR(9), '') 您可以使用替换为\t或CHAR(9): 您仍然可以使用该函数,并指

我在mysql数据库中有一个字段,它是varchar(255)。我已经研究过trim()来删除前导和尾随空格,但它似乎只处理空格,而不处理制表符:

 UPDATE mytable SET textfield = TRIM(textfield);
有人知道如何同时从字段的开始和结束处剥离选项卡吗?

您尝试过吗

UPDATE mytable SET email = REPLACE(TRIM(email), CHAR(9), '')

您可以使用替换为\t或CHAR(9):

您仍然可以使用该函数,并指定要修剪的角色:

UPDATE mytable SET email = TRIM(CHAR(9) FROM TRIM(email));

微调功能为您的问题提供了一个很好的解决方案。只需使用上面类似的方法:

UPDATE yourtable SET your_field = TRIM(CHAR(9) FROM TRIM(your_field));

这不会取代那个字段中的所有标签吗?我也在考虑中间的标签…但再说一次,电子邮件地址通常不包含标签。我不想替换所有标签,只替换开头和结尾的标签。。。不在中间。很抱歉,如果字段名电子邮件让您这么想。@Ray如果是这样的话,那么MichaelFredrickson的答案是正确的。@Kermit不,如果您有类似“\t\t”的内容呢me@example.com\t':)我不想替换所有选项卡,只替换开头和结尾的选项卡。。。不在中间。抱歉,如果字段名电子邮件让您认为。
这两个都是假定的,不需要指定+自从OP的更新后1天。@MichaelFredrickson谢谢!此解决方案不完整,因为可能存在“\x9”、““\n”和空格字符的混合。假设
email
=='text\x9\x9\n'天哪<代码>字符(9)
它是。。。!我一直在做
CHAR(10)
(它代表
newline
),几乎相信我的mySQL坏了!
UPDATE yourtable SET your_field = TRIM(CHAR(9) FROM TRIM(your_field));