|
|
|
составить запрос
|
|||
|---|---|---|---|
|
#18+
Привет. Есть таблица pages в которой есть поля, скажем, url и content , то есть адрес и содержание есть страницы, у которых один и тот же адрес, но разые якоря или запросные строки, например: http://www.example.com/main.php?id=345 http://www.example.com/main.php?id=677 http://www.example.com/main.php?id=7453 или: http://www.example.com/index.php#book http://www.example.com/index.php#ololo http://www.example.com/index.php#drasute У таких страниц совпадает значение поля content . Подскажите, можно ли составить запрос или процедуру удаления всех таких страниц (кроме одной) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 12:43:16 |
|
||
|
составить запрос
|
|||
|---|---|---|---|
|
#18+
Можно. Составляй. PS. Хочешь спросить "как" - чётко и однозначно опиши, как отличить ту запись, которая не удаляется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 13:04:43 |
|
||
|
составить запрос
|
|||
|---|---|---|---|
|
#18+
Akina, можно любую из них, контент же одинаковый у всех Но идеальным вариантом, конечно, было бы оставлять запись вообще без якоря или запросной строки. То есть, для следующего набора страниц с одинаковым содержанием http://www.example.com/index.php http://www.example.com/index.php#book http://www.example.com/index.php#ololo http://www.example.com/index.php#drasute Неплохо бы оставить страницу только http://www.example.com/index.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 13:10:17 |
|
||
|
составить запрос
|
|||
|---|---|---|---|
|
#18+
конечно, если такая имеется если такой нет, можно оставит любую из оставшихся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 13:11:16 |
|
||
|
составить запрос
|
|||
|---|---|---|---|
|
#18+
Всё это можно свести к двум(!) словам - "самую короткую" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 13:22:05 |
|
||
|
составить запрос
|
|||
|---|---|---|---|
|
#18+
действительно ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 13:22:34 |
|
||
|
составить запрос
|
|||
|---|---|---|---|
|
#18+
drasute , Наверное, есть 2 варианта решения: 1. по спецсимволам - найти в адресе положение спецсимвола (?, #) - если найден, взять часть адреса до него, иначе адрес целиком - удалить все строки, подходящие по шаблону 'начало адреса'+'%', кроме строки с минимальным значением адреса 2. по общей части адреса максимальной длины - для каждой строки найти максимальную длину начала адреса, при которой по шаблону подойдет больше 1 строки - удалить все строки, подходящие по шаблону 'начало адреса'+'%', кроме строки с минимальным значением адреса Или, может быть, вы спрашивали про какой-то другой вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 13:31:30 |
|
||
|
составить запрос
|
|||
|---|---|---|---|
|
#18+
Формально типа Код: sql 1. 2. 3. 4. 5. Однако на более-менее приличной таблице сервер, наверное, ляжет и сдохнет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 13:54:41 |
|
||
|
составить запрос
|
|||
|---|---|---|---|
|
#18+
Я бы пошёл таким путём: Создал бы новую таблицу - но с уникальным индексом по URL, И влил бы в неё данные, отрезая от URL параметры и якоря, и игнорируя ошибки. А потом положил бы её на место исходной (как вариант, truncate исходной и копирование почищенных данных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 13:57:28 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38509875&tid=1835502]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 324ms |

| 0 / 0 |
