MySQL - заменить символ в столбцах

Будучи новичком-самоучкой, я создал большую проблему для себя. Перед тем, как вставить данные в мою базу данных, я преобразовал апострофы (') в строке в двойные кавычки ("") вместо обязательной обратной косой черты и апострофа (\'), которые на самом деле требует MySQL.

Я подумал, что до того, как моя таблица вырастет более чем до 200 000 строк, лучше немедленно исправить эту проблему. Итак, я провел небольшое исследование и нашел функцию SQL REPLACE, и это здорово, но теперь я запутался.

В ASP я делал следующее:

str = Replace(str,"'","""")

Если я посмотрю на свою базу данных в SQL Workbench, преобразованный мной символ теперь представляет собой одинарную кавычку ("), что меня немного смутило. Я понимаю, почему он изменился с двойное на одиночное, но я не знаю, какой из них мне теперь менять.

Чтобы решить проблему с помощью SQL REPLACE, нужно ли преобразовать одинарные кавычки (") в обратную косую черту и апострофы (\ ') или двойные кавычки (" ") в обратную косую черту и апострофы ( \ ')?

Например, это:

SQL = " SELECT REPLACE(myColumn,"""","\'") FROM myTable "

или это:

SQL = " SELECT REPLACE(myColumn,""","\'") FROM myTable "

Надеюсь, я хорошо объяснил, любые предложения с благодарностью получены, как всегда. Любые вопросы по моему вопросу, пожалуйста, прокомментируйте.

Большое спасибо

- ОБНОВЛЕНИЕ -

Я пробовал следующие запросы, но все еще не смог изменить (") в данных:

SELECT REPLACE(caption,'\"','\'') FROM photos WHERE photoID = 3371
SELECT REPLACE(caption,'"','\'') FROM photos WHERE photoID = 3371
SELECT REPLACE(caption,'""','\'') FROM photos WHERE photoID = 3371

Однако, если я ищу:

SELECT COUNT(*) FROM photos WHERE caption LIKE '%"%'

, я получаю 16 150 строк.

- ОБНОВЛЕНИЕ 2 -

Итак, я создал «обходной путь». Мне удалось довольно быстро преобразовать весь столбец, написав сценарий ASP, используя этот SQL:

SELECT photoID, caption FROM photos WHERE caption LIKE '%""%';

, а затем в ASP я сделал:

caption = Replace(caption,"""","\'")

Но я все же хотел бы знать, почему я не смог добиться этого с помощью SQL?

54
задан TheCarver 11 October 2011 в 16:17
поделиться