Разделить данные таблицы в SQL и заменить результатами - PullRequest
0 голосов
/ 31 января 2011

Мне нужно удалить кучу ненужных данных из каждой таблицы на основе параметров разделения.

Моя таблица SQL хранит кучу HTML для кэширования. Данные уже находятся в SQL, и они становятся достаточно большими, поэтому теперь я хочу разделить некоторые данные, которые я не использую, из каждой таблицы на основе строки и обновите таблицу с новыми результатами.

Таблица cacheHTML содержит данные, подобные этим

<html>
... (a bunch of data I don't need)
<first div>
... (the data I do want to save)
</div>
... (data I don't care about also)
</html>

Я хочу только то, что находится внутри первого div, и удалить все html до этого момента.

Есть ли простой способ для этого? Мне нужно сделать это для 5k строк кэшированных данных ...

Мне нужна функция или метод, чтобы дать мне все от строки1 до строки2, а затем заменить таблицу результатами. Любая помощь будет оценена Спасибо!

1 Ответ

2 голосов
/ 31 января 2011

Вы могли бы сделать что-то вроде этого.Будет работать, только если вам всегда нужен текст внутри первого элемента div в строке html.Я предполагаю, что SQL Server является системой баз данных, но, вероятно, его можно довольно легко перевести на другие.

Пример строки html:

<html>
<head>
    <title>Stuff i dont need</title>
</head>
<body>
    <h1>Stuff i dont need</title>
    <p>I dont need any of this data</title>
    <div>This is the data i need to save!</div>
    <h3>Dont need this</h3>
    <div>Wont need this either!<div>
    <h3>Bye</h3>
</body>

SQL для обновления:

UPDATE cacheHTML
SET htmlText = REPLACE(SUBSTRING(htmlText, CHARINDEX('<div>', htmlText, 0), CHARINDEX('</div>', htmlText, 0) - CHARINDEX('<div>', htmlText, 0)), '<div>', '')
...