繁体   English   中英

如何在mysql的同一列上使用LEFT和REPLACE?

[英]How can I use LEFT and REPLACE on the same column in mysql?

我想选择一个列并删除(替换为空格)任何换行或回车,我想在替换后只获得列中的前40个字符。

这是我试过的查询,但我得到了

select date, REPLACE(LEFT(message, '\r', ' '), 30)
from table1 
where message like 'testing%'

错误1064(42000):您的SQL语法有错误; 检查与您的MariaDB服务器版本对应的手册,以便在'''附近使用正确的语法,30)来自events_cleared,其中第1行的'testing%'消息

替换需要参数'\\ r; 和''

LEFT(REPLACE(message, '\r', ' '), 30)

要么

REPLACE(LEFT(message,30), '\r', ' ')

您的参数排序不正确(您已将REPLACE参数传递给LEFT )。 尝试这个:

select date, REPLACE(LEFT(message, 30), '\r', ' ')
from table1 
where message like 'testing%'

您的函数标识符已切换,因此参数的数量不正确。 如果你想首先发生replace() ,那么嵌套必须比left()更深入。 你还写了30作为left()第二个参数,它只给你30个字符,而不是40个。

SELECT date,
       left(replace(message, '\r', ' '), 40)
       FROM table1
       WHERE message LIKE 'testing%';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM