Autor | Zpráva | ||
---|---|---|---|
Enko Profil |
#1 · Zasláno: 6. 12. 2013, 16:57:51
Ahoj,
mám tabulku a v jednom sloupci je text v tomto formátu: "nějakýtext\nnějakýtext\nnějakýtext\nnějakýtext" a potřebuji všechny \n nahradit například za <br>. Zkoušel jsem to přes funkci Replace() viz tento příklad: Update `tabulka` SET description = replace(description, '\n', '<br>') where id_product='8338' Ale vrátí mi to 0 ovlivněných řádků, kterých tam mám cca 8, odpovídající této podmínce. Lze toto provést nějakým způsobem v MySQL? |
||
juriad_ Profil * |
#2 · Zasláno: 6. 12. 2013, 17:10:57
Id_product je predpokladam INT. Takze hodnotu v podmince nepis s apostrofy.
To ze mysql nekdy zvladne automatickou konverzi neznamena, ze muzes VARCHAR a INT volne zamenovat. |
||
Enko Profil |
#3 · Zasláno: 6. 12. 2013, 18:15:42
Tak nefunguje. Dotaz dávám jenom takto:
Update `tabulka` SET description = replace(description, '\n', '<br>') Sloupec description je tipu "text" |
||
Kajman Profil |
Dotaz vypadá korektně. Podívejte se např. v hexa zobrazení dat, zda tam je opravdu nový řádek \n a není tam např. jen zbylý návrat \r.
A pokud ten dotaz nespouštíte přímo, ale např. přes nějaký programovací jazyk jako string, tak ho nezapomeňte escapovat... aby se zpětné lomítko ošetřilo a zachovalo až pro mysql. |
||
Enko Profil |
#5 · Zasláno: 7. 12. 2013, 10:34:04
Tak vyřešeno, sice už jsem měl z 95% napsaný PHP script, který by to udělal, ale bylo to tím escapováním.
Výsledný a funkční SQL dotaz vypadá takto: Update `tabulka` SET description = replace(description, '\\n', '<br>') Děkuji Kajmanovi za radu o escapování, protože to bylo tím. |
||
Časová prodleva: 10 let
|
0