我剛纔着手從我們的數據庫中剝離出來的HTML實體的任務,因爲我們做了很多抓取和一些爬蟲並沒有在輸入時間做到這一點:(PostgreSQL的 - 替換HTML實體
於是我開始寫一堆看起來像查詢;
UPDATE nodes SET name=regexp_replace(name, 'à', 'à', 'g') WHERE name LIKE '%#xe0%';
UPDATE nodes SET name=regexp_replace(name, 'á', 'á', 'g') WHERE name LIKE '%#xe1%';
UPDATE nodes SET name=regexp_replace(name, 'â', 'â', 'g') WHERE name LIKE '%#xe2%';
其中明確是一個很天真的做法我一直在試圖找出是否有一些聰明我可以用解碼功能做。也許搶奪正則表達式的HTML實體像/&#x(..);/
,然後通過只是%1
p藝術到ascii解碼器,並重建字符串...或東西...
我只需要按查詢?可能只有40個左右。
如果你這樣做,以避免巨大的表膨脹你會想'VACCUM'積極。 @SzymonGuz解釋說,在PL中進行文本處理是更好的方法。在SQL中可以使用'substring'或'regexp_matches'和一個替換表,但是它會很慢並且很難看。 –
感謝VACCUM小費,我會研究一下。 – lynks