Какие функции mysql существуют (если они есть), чтобы обрезать ведущие нули из буквенно-цифрового текстового поля?
Поле со значением "00345ABC" должно вернуть "345ABC".
Какие функции mysql существуют (если они есть), чтобы обрезать ведущие нули из буквенно-цифрового текстового поля?
Поле со значением "00345ABC" должно вернуть "345ABC".
Вы ищете функцию trim().
Хорошо, вот ваш пример
SELECT TRIM(LEADING '0' FROM myfield) FROM table
Совет:
Если ваши значения являются чисто численными, вы также можете использовать простое литье, например.
SELECT * FROM my_table WHERE accountid = '00322994' * 1
фактически преобразуется в
SELECT * FROM my_table WHERE accountid = 322994
что является достаточным решением во многих случаях, и я считаю, что эффективность более эффективна. (тип предупреждения - значение изменяется с STRING на INT/FLOAT).
В некоторых ситуациях использование некоторой функции кастинга может быть также способом:
Я считаю, что вам лучше справиться с этим:
SELECT TRIM(LEADING '0' FROM myField)
Если вы хотите обновить один столбец таблицы, вы можете использовать
USE database_name;
UPDATE 'table_name' SET 'field' = TRIM(LEADING '0' FROM 'field') WHERE 'field' LIKE '0%';
просто идеально:
SELECT TRIM(LEADING '0' FROM myfield) FROM table
просто удалите пробел между TRIM ( LEADING
используйте
SELECT * FROM my_table WHERE TRIM(LEADING '0' FROM accountid ) = '00322994'
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
SELECT TRIM(LEADING '0' FROM *columnName*) FROM *tableName* ;
Это также работает правильно