我想实现MySQL中的查询,将空间MySQL查询将从字符串中删除字符
例如之前删除字符:
UA 016
我想要删除'UA'的空间,只保留
这里的查询语句:
update field_data_field_id set field_id_value = '.... what i need here';
在此先感谢
我想实现MySQL中的查询,将空间MySQL查询将从字符串中删除字符
例如之前删除字符:
UA 016
我想要删除'UA'的空间,只保留
这里的查询语句:
update field_data_field_id set field_id_value = '.... what i need here';
在此先感谢
UPDATE field_data_field_id
SET field_id_value=SUBSTRING_INDEX(
SUBSTRING_INDEX(field_id_value,' ',2),' ',-1);
试试这个
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”
谢谢soooo多@echo_Me –
有点慢,但它的工作原理;) – Irakli
请参阅[REPLACE()](http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace)。 – user2864740