Задача на знание Mysql
Есть таблица MY_TABLE с полями COL1, COL2, COL3... Таблица заполена данными, причём некоторые строки дублируются n-ое количество раз.
Как избавиться от лишних строк, оставив только уникальные строки, не используя внешних буферов (внутрение буферы самого языка использовате не запрещается)? То есть сделать это только при помощи языка MySQL. Помагите плиз.... где то видел такое решение, но немогу вспомнить и найти.
Чем не устраивает SELECT DISTINCT?
SELECT DISTINCT не устраевает меня тем что данные становятся уникальными только в ответе на запрос (то есть скидываются в переменную, как в буфер). мне же нужно чтобы был очищен первичный источник.
DELETE с вложенным SELECT DISTINCT
мдя... а как будет выглятель sql код? Что-то такое я ниразу не видел
DELETE FROM my_table WHERE id IS NOT IN (SELECT DISTINCT(col1, col2, col3) AS aa FROM my_table)
Причем, надо добавить столбик с автоинкрементом. Это-то не запрещается? Такой в принципе по закону жанра должен быть ;)
Message: You can't specify target table '%s' for update in FROM clause
SELECT id AS aa FROM my_table GROUP BY col1, col2, col3
и ещё вложенные запросы кажется недоступны в версиях ниже 4.1.х
Но кто сказал, что мы говорим о БД старше 3 лет? )
видел я хостинг, который до сих пор пользует 3.23 Mysql... но ведь это вообще "бяка"... ни тебе с русским нормально поработатать (если ты конфиг не можешь подправить), ни тебе вложенных запросов (что порой ох как удобно)....