MYSQL查询将从字符串中删除字符

时间:2014-01-11 21:24:19

标签: mysql sql character

我想在MYSQL中实现一个查询,它将删除空格

之前的字符

例如:

  

UA 016

我想用空格删除'UA',只保留

  

016

这是查询语句:

update field_data_field_id set field_id_value = '.... what i need here';

提前致谢

3 个答案:

答案 0 :(得分:3)

试试这个

 CREATE FUNCTION IsNumeric (val varchar(255)) RETURNS tinyint 
 RETURN val REGEXP '^(-|\\+){0,1}([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+|[0-9]+)$';

 CREATE FUNCTION NumericOnly (val VARCHAR(255)) 
 RETURNS VARCHAR(255)
 BEGIN
 DECLARE idx INT DEFAULT 0;
 IF ISNULL(val) THEN RETURN NULL; END IF;

 IF LENGTH(val) = 0 THEN RETURN ""; END IF;

 SET idx = LENGTH(val);
 WHILE idx > 0 DO
 IF IsNumeric(SUBSTRING(val,idx,1)) = 0 THEN
 SET val = REPLACE(val,SUBSTRING(val,idx,1),"");
 SET idx = LENGTH(val)+1;
 END IF;
 SET idx = idx - 1;
  END WHILE;
  RETURN val;
  END;

通过调用NumericOnly函数来使用它:

select NumericOnly('1&2') as result;

返回:“12”

select NumericOnly('abc987') as result;

返回:“987”

答案 1 :(得分:2)

UPDATE table SET column=REPLACE(column,SUBSTRING_INDEX(column,' ',1),'');

Fiddle

假设所有值都有空格。

答案 2 :(得分:1)

UPDATE field_data_field_id 
SET field_id_value=SUBSTRING_INDEX(
                     SUBSTRING_INDEX(field_id_value,' ',2),' ',-1);