2014-01-11 2 views
1

Я хотел бы осуществить запрос в MYSQL, который удалит символы до пространстваMYSQL запрос будет удалить символы из строки

Например:

UA 016

я хотите удалить «UA» с пробелом и сохранить только

здесь операторы запроса:

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

Заранее спасибо

+0

См. [REPLACE()] (http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace). – user2864740

ответ

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

Fiddle

Предполагая, что все значения имеют место.

+0

что об этом? http://sqlfiddle.com/#!2/19ba8/1 :) –

+0

Если у него есть персонажи ПОСЛЕ первого места, он сломается, да. Но он этого не сказал. – Mihai

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"

+0

Спасибо вам большое за то, что @echo_Me –

+0

немного медленный, но он работает;) – Irakli

Смежные вопросы