Всем привет. Знаю, что тема заезженная, но решить поставленную задачу не смог.
Суть в чем:
Имеется таблица с перечнем фруктов/овощей которая имеет 4 поля (ID
, Name
, List
, Quantity
).
Name
заносится название фрукта/овоща.List
состояние фрукта (зеленый, спелый, переспелый...)Quantity
количество фрукта/овоща в наличииТак, как у нас состояний несколько, поле Name
может повторяться:
Таблица №1
+--------+---------+-----------+----------+
| id | Name | List | Quantity |
+--------+---------+-----------+----------+
| 1 | Яблоко | Зеленый | 100 |
+--------+---------+-----------+----------+
| 2 | Яблоко | Спелый | 40 |
+--------+---------+-----------+----------+
| 3 | Яблоко | Переспелый| 3 |
+--------+---------+-----------+----------+
Все было хорошо, но в один прекрасный день, что-то пошло не так, часть полей продублировались и получилось:
Таблица №2
+--------+---------+-----------+----------+
| id | Name | List | Quantity |
+--------+---------+-----------+----------+
| 1 | Яблоко | Зеленый | 100 |
+--------+---------+-----------+----------+
| 2 | Яблоко | Спелый | 40 |
+--------+---------+-----------+----------+
| 3 | Яблоко | Переспелый| 3 |
+--------+---------+-----------+----------+
| 4 | Яблоко | Зеленый | 100 |
+--------+---------+-----------+----------+
| 5 | Яблоко | Спелый | 40 |
+--------+---------+-----------+----------+
| 6 | Яблоко | Переспелый| 3 |
+--------+---------+-----------+----------+
| 7 | Яблоко | Зеленый | 100 |
+--------+---------+-----------+----------+
| 8 | Яблоко | Спелый | 40 |
+--------+---------+-----------+----------+
| 9 | Яблоко | Переспелый| 3 |
+--------+---------+-----------+----------+
Из за того, что поле Name
не уникально, БД позволила создать дубликаты.
Теперь собственно вопрос, каким образом можно удалить задублированные поля List
и Quantity
, что бы получилось как в Таблице №1 ?
Для начала удалите дубли в таблице:
DELETE t1
FROM tbl AS t1
INNER JOIN tbl AS t2 ON t1.Name = t2.Name
AND t1.List = t2.List
AND t1.Quantity = t2.Quantity
AND t1.id > t2.id;
tbl
— имя вашей таблицы.
Во избежание таких ситуаций, сделайте составной уникальный индекс по полям Name
, List
, Quantity
:
CREATE UNIQUE INDEX index_name ON tbl (Name, List, Quantity);
index_name
название индекса, а tbl
ваша таблица.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нашел много примеров по теме (Sending Emails without User Intervention (no Intents) in Android) с отправкой сообщения на почту анонимно с сотового из своего приложения...
Здравствуйте! Пытаюсь сделать клиент-серверное приложение, но не могу разобраться, почему клиент не обрабатывает команды посланные сервером,...
Есть метод, который получает элементы xmlparsers:
Мне необходимо ограничить количество символов в строке после '' до 6