2012-01-20 35 views
5

如果数据插入这种方式,我如何使用SELECT去除填充空字节在MySQL

insert into `t` (`date`, `data`) values (now(), lpad('Hello', 4096, CHAR(0x00))); 

你怎么retrive从data塔取出NULL字符。我实际上在寻找与LPAD做相反的事情。

表定义为,

create table `t` (
    `id` int auto_increment, 
    `date` datetime, 
    `data` blob, 
    primary key (`id`) 
); 

广义的问题是,我如何可以从开头或字符串的结尾删除特定的字符?

回答

8

使用trim(),其中有3种形式:

select trim(leading CHAR(0x00) from data) 

select trim(trailing CHAR(0x00) from data) 

select trim(both CHAR(0x00) from data) 
+0

OMG!每次我搜索手册,我最终都在读[LTRIM()](http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_ltrim) –

1

你可能会想使用TRIM,如;

select id, date, trim(trailing char(0) from data) as data from t;