|
|
|
| Народ подскажите как сделать средствами mysql.
В таблице хранятся номера заявок(эти поля не уникальны и могут повторяться). И статусы(выволненно,не выполненно)
Т.е вот:
number|status|
100 |0
150 |0
150 |1
Мне нужно оставить только запись со статусом 1 и удалить ее дубль до статусом 0.
Т.е логика такая 1)Находим дубли2)Смотри есть ли у какой нибудь записи статус 1 и если есть то удаляем ее дубль со статусом 0.
В php это надо все в цикле искать, что ресурсоемко.
Хотелось бы узнать как это можно на mysql реализовать. | |
|
|
|
|
|
|
|
для: Eser
(12.07.2011 в 15:12)
| |
DELETE
FROM table t1 JOIN
(SELECT number, COUNT(number) AS t
FROM table
GROUP BY (number)
HAVING t>1) t2
ON t1.number=t2.number
WHERE status=0
|
попробуйте, естественно сделав копию БД | |
|
|
|
|
|
|
|
для: Valick
(12.07.2011 в 15:56)
| | Спасибо.
Вечером помучаю | |
|
|
|
|
|
|
|
для: Eser
(12.07.2011 в 15:12)
| | Возможно вас также заинтересует тема по ссылке http://softtime.ru/forum/read.php?id_forum=3&id_theme=79267. | |
|
|
|
|
|
|
|
для: cheops
(12.07.2011 в 16:45)
| | Очень помогло спасибо! | |
|
|
|