Ваш CSS
.pagebreak { page-break-inside:avoid; page-break-after:always; }
Вы когда-нибудь пробовали это вместо этого?
.pagebreak { page-break-inside:always; page-break-after:always; }
держите меня в курсе вашей проблемы
После этого удалите дубликаты для всех SID, а не только для одного.
С временной таблицей
CREATE TABLE table_temp AS
SELECT * FROM table GROUP BY title, SID;
DROP TABLE table;
RENAME TABLE table_temp TO table;
Поскольку temp_table
только что создана, у нее нет индексов. Вам нужно будет воссоздать их после удаления дубликатов. Вы можете проверить, какие у вас есть индексы в таблице с помощью SHOW INDEXES IN table
Without temp table:
DELETE FROM `table` WHERE id IN (
SELECT all_duplicates.id FROM (
SELECT id FROM `table` WHERE (`title`, `SID`) IN (
SELECT `title`, `SID` FROM `table` GROUP BY `title`, `SID` having count(*) > 1
)
) AS all_duplicates
LEFT JOIN (
SELECT id FROM `table` GROUP BY `title`, `SID` having count(*) > 1
) AS grouped_duplicates
ON all_duplicates.id = grouped_duplicates.id
WHERE grouped_duplicates.id IS NULL
)
это удаляет дубликаты на месте, не создавая новую таблицу
ALTER IGNORE TABLE `table_name` ADD UNIQUE (title, SID)
примечание: работает хорошо, только если индекс умещается в памяти
вот то, как я обычно устраняю дубликаты