分享到:
发表于 2009-05-19 16:56:41 楼主 | |
mysql中如何识别记录中的tab键,回车键?
比如下列code a到where之间,应该就有个tab键或回车键: +-------------------------------------------------------+ | trim(sql_text) | +-------------------------------------------------------+ | select count(*) from code a where | | status <> 'D' | +-------------------------------------------------------+ |
|
|
发表于 2009-05-19 16:57:03 1楼 | |
![]() ========================= 好像不能,没有这样的函数。 你的目的是啥? |
|
发表于 2009-05-19 16:57:22 2楼 | |
偶已经搞定了: delimiter // drop function if exists sql_clearspace// create function sql_clearspace(v_sql varchar(4000)) returns varchar(4000) begin declare v_tmps varchar(4000) default \'\'; declare v_last varchar(2) default \'\'; declare v_curr varchar(2) default \'\'; declare v_num int default 0; declare v_max int default 0; set v_max = length(v_sql); while v_num <> v_max do set v_num = v_num + 1; set v_curr = substr(v_sql, v_num, 1); if (v_curr = char(9) or v_curr = char(10)) then set v_curr = char(32); end if; if (v_curr <> char(32) and (v_last is null or v_last <> char(32))) then set v_tmps = concat(v_tmps, v_curr); set v_last = v_curr; elseif (v_last <> char(32) and v_curr = char(32)) then set v_tmps = concat(v_tmps, v_curr); set v_last = v_curr; elseif (v_last = char(32) and v_curr <> char(32)) then set v_tmps = concat(v_tmps, v_curr); set v_last = v_curr; end if; end while; return v_tmps; end// delimiter ; mysql> select sql_clearspace(\'select count(*) from code a where status <> 1\'); +-------------------------------------------------------------------------------------+ | sql_clearspace(\'select count(*) from code a where status <> 1\') | +-------------------------------------------------------------------------------------+ | select count(*) from code a where status <> 1 | +-------------------------------------------------------------------------------------+ 1 row in set (0.01 sec) |
|
发表于 2009-05-31 21:08:02 3楼 | |
支持 | |
针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员 、 查看帮助 或 给我提意见