Способ копирования значений из столбца 1 (содержащего числа), объявленного как varchar, в другой столбец 2, объявленный как number в Mysql

#mysql #sql #sql-update

#mysql #sql #sql-обновление

Вопрос:

Я использую таблицу, скажем, employee, в которой есть два столбца -mobileno и landlineno (оба объявлены как varchar), содержащий контактный номер этого сотрудника. Итак, теперь мы делаем шаг вперед, добавляя два дополнительных столбца mn и fn, оба объявленных как bigint . Итак, я написал запрос на обновление, который обновил значения. Поскольку таблица стала большой, поэтому она содержит много ненужных значений, таких как 052-12525, которые были вставлены из внешнего интерфейса, значение, скопированное в mn, равно 052, игнорируя цифры после «-«. И еще 1 экземпляр — это mobileno is 5.836, который был неправильно введен из интерфейса, был скопирован как 6. Поэтому, пожалуйста, подскажите мне, есть ли способ игнорировать символы и копировать только цифры в новый столбец

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

1. Как насчет телефонных номеров, например 442071231234 ? Если вы сохраните это как BigInt, а затем преобразуете его обратно в текст, вы получите 0442071231234 , что неверно… Я думаю, вам лучше проверить введенные строки и наложить на них ограничения (на пользователя), прежде чем они попадут в базу данных.

Ответ №1:

используйте ФОРМАТИРОВАНИЕ и ЗАМЕНУ

 SELECT REPLACE('052-12525', '-', ''), FORMAT(12332.1,0)
  

вернет 05212525 и 12332