SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.11.2016 21:43:05

kaiseri
Завсегдатай
Зарегистрирован: 26.09.2016
Сообщений: 26

Удалить символ из базы.

в поле между значениями стоит вот такой символ, скриншот прилагаю.  Если поле вывести в урл, то выводит '%0С', если на страницу, то пробел между словами.
Как его удалить со всей базы?


Прикрепленные файлы:
Attachment Icon 123.png, Размер: 3,742 байт, Скачано: 365

Неактивен

 

#2 18.11.2016 21:51:25

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Удалить символ из базы.

http://dev.mysql.com/doc/refman/5.7/en/ … on_replace
используется для удаления символов - искомый меняете на пустую строку.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 18.11.2016 22:14:27

kaiseri
Завсегдатай
Зарегистрирован: 26.09.2016
Сообщений: 26

Re: Удалить символ из базы.

REPLACE я знаю немногоsmile)),   но в запросе этот квадратик smile не нарисовать.  Тут больше вопрос, что должно стоять в месте "что меняем".  %-же нельзя, если он вообще процентом лежит в базе.  Я собственно только из-за этого и привел скриншот.  Не могу понять как в запросе описать это чудо.

Отредактированно kaiseri (18.11.2016 22:29:54)

Неактивен

 

#4 18.11.2016 22:30:16

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Удалить символ из базы.

Не нарисовать. Но можно через его ascii-код.
Смотрите в сторону
http://dev.mysql.com/doc/refman/5.7/en/ … ction_char
а посмотреть значение кода в дампе базы этого квадратика можно в любом хекс-редакторе.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 18.11.2016 23:46:54

kaiseri
Завсегдатай
Зарегистрирован: 26.09.2016
Сообщений: 26

Re: Удалить символ из базы.

посмотрел, значение этого элемента '0с'  - все равно не могу понять как мне его в запрос встроить.

Неактивен

 

#6 18.11.2016 23:56:53

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Удалить символ из базы.

Можно его из таблицы взять и записать в переменную:

SET @c=(select SUBSTRING(mycolum,1,1) FROM mytable WHERE id=myid);


Затем в REPLACE подставить @c

Неактивен

 

#7 18.11.2016 23:59:26

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Удалить символ из базы.

Давайте для начала научимся вставлять такой символ в базу.
Приложите дамп Вашей таблицы (сделайте через mysqldump) ( и в идеале, чтобы там была только строчка, с которой воюем)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#8 19.11.2016 11:34:49

kaiseri
Завсегдатай
Зарегистрирован: 26.09.2016
Сообщений: 26

Re: Удалить символ из базы.

там три строчки, они все содержать этот символ, на всяк случай.


Прикрепленные файлы:
Attachment Icon new_parse(1).sql, Размер: 1,344 байт, Скачано: 1,044

Неактивен

 

#9 19.11.2016 21:19:33

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Удалить символ из базы.

Вот прямо то, что находится в дампе на 41-й строке

SELECT `a_laborant`,replace(`a_laborant`,char(0x0c using ucs2),'') FROM `new_parse`;

Этот запрос должен во втором столбце вырезать символ из первого столбца.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#10 19.11.2016 21:40:31

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Удалить символ из базы.

rgbeast написал:

Можно его из таблицы взять и записать в переменную:

SET @c=(select SUBSTRING(mycolum,1,1) FROM mytable WHERE id=myid);


Затем в REPLACE подставить @c

Да, или так, даже немножко проще получается.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#11 20.11.2016 15:48:54

kaiseri
Завсегдатай
Зарегистрирован: 26.09.2016
Сообщений: 26

Re: Удалить символ из базы.

deadka написал:

Вот прямо то, что находится в дампе на 41-й строке

SELECT `a_laborant`,replace(`a_laborant`,char(0x0c using ucs2),'') FROM `new_parse`;

Этот запрос должен во втором столбце вырезать символ из первого столбца.

Спасибо, огромное, удалил smile,  а подскажите напоследок, этот символ мне hex-редактор показывали как "0с", откуда взялось "0х"

Неактивен

 

#12 20.11.2016 16:01:33

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Удалить символ из базы.

0x - это хексовое представление (16ричная система счисления).
0C в шестнадцатеричной системе счисления это 12 в десятичной системе счисления.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson