2012-01-26 14 views
5

Mam bazę danych informacji, które zostały przesłane ze strony internetowej. Głównym dane kolumna została wprowadzona za pomocą Markdown i zawiera dużo tekstu, który wygląda tak:Używanie REPLACE ze znakami escape w phpMyAdmin

Walgreens (www.walgreens.com) is the nation\\\'s largest drugstore chain. 

Jesteśmy przełączenie na inny edytor WYSIWYG, i trzeba oczyścić dane. Próbowałem to zrobić w phpMyAdmin:

UPDATE sc_answer 
SET answer_text = REPLACE (answer_text, '\\\', '') 
WHERE sc_answer_id = 24806 

ale pojawia się błąd:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''\\\', '') WHERE sc_answer_id = 24806' at line 3 

Czy ktoś może mi pomóc? Co muszę zrobić, aby to zadziałało?

Odpowiedz

4

Dla każdego odwróconego ukośnika \ w polu tekstowym użyj 2 odwrotnych ukośników w SQL. Na przykład, jeśli tabela wygląda następująco:

mysql> select * from foo; 
+----+---------------------------------------------------------------------------+ 
| id | bar                  | 
+----+---------------------------------------------------------------------------+ 
| 1 | Walgreens (www.walgreens.com) is the nation\\\'s largest drugstore chain. | 
+----+---------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

następnie

mysql> update foo set bar = REPLACE(bar,'\\\\\\','') where id = 1; 
Query OK, 1 row affected (0.00 sec) 
Rows matched: 1 Changed: 1 Warnings: 0 

mysql> select * from foo; 
+----+------------------------------------------------------------------------+ 
| id | bar                 | 
+----+------------------------------------------------------------------------+ 
| 1 | Walgreens (www.walgreens.com) is the nation's largest drugstore chain. | 
+----+------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 
+0

Dziękuję, że to zrobił! – EmmyS

Powiązane problemy