Вы пытаетесь удалить все пустые строки?
DELETE FROM searchterms WHERE gene_id = 0
Что касается непустых строк с дубликатами, вам нужно выбрать строки с более чем одной:
SELECT gene_d, COUNT(*) c FROM table GROUP BY name HAVING c > 1;
Затем вы можете извлечь один элемент из массива, а затем удалить другие идентификаторы.
Чтобы остановить добавление дубликатов, просто выполните сначала запрос SELECT
, и, если строки не найдены, выполните командуINSERT
.