barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

пятница, 11 ноября 2011 г.

MySQL: как убрать NUL в конце строк

Проблема: 
при переносе БД из другой СУБД в конце всех перенесенных varchar-строк оказался символ NUL (или "00" в шестнадцатеричном представлении, что является символом конца строки, например, в С, но в БД этот лишний байт вовсе не нужен).
Решение:
Решается проблема простым UPDATE`ом, который удалит лишний байт в конце всех строк, если он там есть (строки расположены в столбце brand таблицы manufacturers):

UPDATE `manufacturers`
SET brand=SUBSTRING(brand,1,CHAR_LENGTH(brand)-1)
WHERE HEX(SUBSTRING(brand FROM CHAR_LENGTH(brand)))='00'

Комментариев нет:

Отправить комментарий