我想选择一个列并删除(替换为空格)任何换行或回车,我想在替换后只获得列中的前40个字符。
这是我试过的查询,但我得到了
select date, REPLACE(LEFT(message, '\r', ' '), 30)
from table1
where message like 'testing%'
错误1064(42000):您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在'''附近使用正确的语法,30)来自events_cleared,其中第1行的'testing%'消息
您的参数排序不正确(您已将REPLACE
参数传递给LEFT
)。试试这个:
select date, REPLACE(LEFT(message, 30), '\r', ' ')
from table1
where message like 'testing%'
替换需要参数'\ r;和''
LEFT(REPLACE(message, '\r', ' '), 30)
要么
REPLACE(LEFT(message,30), '\r', ' ')
您的函数标识符已切换,因此参数的数量不正确。如果你想首先发生replace()
,那么必须比left()
更深入地嵌套。你还写了30
作为left()
的第二个参数,它只给你30个字符,而不是40个。
SELECT date,
left(replace(message, '\r', ' '), 40)
FROM table1
WHERE message LIKE 'testing%';