每日一SQL-REPLACE
又到了每日一SQL的時間,今天遇到一個有趣的問題
手上有一個專案,原先資料庫有一欄位是用來存網頁內容的,但只有存純文字
後台是直接用TextArea來編輯資料。
類似這樣
但是改版後呢,這個欄位改成用文字編輯器來編輯,也就是說會連Html一起存進去
類似
所以新版網頁直接輸出欄位資料,就已經排版好了。
但,我再將舊資料庫的資料轉檔過去時,由於原先的欄位並沒有包含Html,以至於直接輸出
在網頁上,變成一坨一坨的,沒有斷行的文字,很難看
原先的資料在上傳時雖然有斷行
但在View上,由於Html不認得,因此變成
一種辦法是寫程式來解決,但我認為這是資料的問題,所以就在資料庫解決吧。
首先雖然眼睛看不到,但存到資料庫的資料的確有換行字元 參考 維基 ASCII
由參考資料得知 換行的的碼數是10
所以我只要將char(10)換成Html的<br/>就行了
先用select看看,有沒有正確的替換
可以很清楚的看到,<br/>出現了,確定了之後,就把欄位更新吧。
set 欄位名稱 = REPLACE(欄位名稱, CHAR(10), '<br />')
更新完之後,就可以直接看結果囉
這樣該換行的就有換行,清楚多了。
附帶一提,在MVC上要在View顯是含有Html的資料,可用<%=Html.DisplayTextFor(p=>p.欄位)%>