Подтвердить что ты не робот

Как обрезать ведущие нули из буквенно-цифрового текста в функции mysql

Какие функции mysql существуют (если они есть), чтобы обрезать ведущие нули из буквенно-цифрового текстового поля?

Поле со значением "00345ABC" должно вернуть "345ABC".

4b9b3361

Ответ 1

Вы ищете функцию trim().

Хорошо, вот ваш пример

SELECT TRIM(LEADING '0' FROM myfield) FROM table

Ответ 2

Совет:

Если ваши значения являются чисто численными, вы также можете использовать простое литье, например.

SELECT * FROM my_table WHERE accountid = '00322994' * 1

фактически преобразуется в

SELECT * FROM my_table WHERE accountid = 322994

что является достаточным решением во многих случаях, и я считаю, что эффективность более эффективна. (тип предупреждения - значение изменяется с STRING на INT/FLOAT).

В некоторых ситуациях использование некоторой функции кастинга может быть также способом:

http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

Ответ 3

Я считаю, что вам лучше справиться с этим:

SELECT TRIM(LEADING '0' FROM myField)

Ответ 4

Если вы хотите обновить один столбец таблицы, вы можете использовать

USE database_name;
UPDATE 'table_name' SET 'field' = TRIM(LEADING '0' FROM 'field') WHERE 'field' LIKE '0%';

Ответ 5

просто идеально:

SELECT TRIM(LEADING '0' FROM myfield) FROM table

Ответ 6

просто удалите пробел между TRIM ( LEADING используйте

SELECT * FROM my_table WHERE TRIM(LEADING '0' FROM accountid ) = '00322994' 

Ответ 7

TRIM позволит вам удалить конечные, ведущие или все символы. Некоторые примеры использования функции TRIM в MySQL:

select trim(myfield) from (select '   test' myfield) t;
>> 'test'
select trim('0' from myfield) from (select '000000123000' myfield) t;
>> '123'
select trim(both '0' from myfield) from (select '000000123000' myfield) t;
>> '123'
select trim(leading '0' from myfield) from (select '000000123000' myfield) t;
>> '123000'
select trim(trailing '0' from myfield) from (select '000000123000' myfield) t;
>> '000000123'

Если вы хотите удалить только количество символов ведущего/завершающего символа, просмотрите функции LEFT/RIGHT с комбинацией функций LEN и INSTR

Ответ 8

SELECT TRIM(LEADING '0' FROM *columnName*) FROM *tableName* ;

Это также работает правильно