Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 24 Май, 2012, 08:10:40

Страниц: 1 [2]
Печать
Автор Тема: Задачка.  (Прочитано 1798 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
phpdude    ↓ 
21 Август, 2009, 08:35:05
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66

IN работает моментально, не надо гнать на него ....
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
AndryG    ↓ 
21 Август, 2009, 08:38:51 , спустя 3 минуты 46 секунд
НЕ ХУЕТА! ХУЕТА!
Группа: Адекваты

Карма: 1
Сообщений: 233
Сила слова: 0.43

SQL
INSERT INTO hotels (name,region,type_)
SELECT :name, :region, :type
FROM rdb$database -- Это таблица с одной строкой. Для mySQL, кажись, можно просто убрать предложение FROM
WHERE NOT EXISTS(SELECT * FROM hotels WHERE name = :name AND region = :region AND type_ = :type)
Логика запроса:
- вставить, то что выберем
- выбирать будем наши данные, а не данные из БД. (обманка, типа, получилась ... вроде и запрос, а не спрашивает - сам дает)
- если данные такие уже в БД есть, то WHERE вернет ложь и select вернет ноль записей и нифига вставлено не будет.
 
 
Записан
Batler    ↓ 
27 Август, 2009, 03:02:16 , спустя 5 дней 18 часов 23 минуты 25 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 4
Сообщений: 142
Сила слова: 2.82

ага, тоже самое что я сказал, но разбито на этапы. Я попытался собрать в одно логическое высказывание :)
Значит мы друг друга поняли.
По поводу модификации и ласт инсерт айди - думал. Надо пробовать. Пока нет времени, попал в больницу.
Как выпишусь - отпишу.
Записан
adw0rd    ↓ 
27 Август, 2009, 03:12:06 , спустя 9 минут 50 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Batler, выздоравливай!
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
AndryG    ↓ 
27 Август, 2009, 06:11:37 , спустя 2 часа 59 минут 31 секунду
НЕ ХУЕТА! ХУЕТА!
Группа: Адекваты

Карма: 1
Сообщений: 233
Сила слова: 0.43

У Вас эти этапы идут в коде клиента, Вы требуете от СУБД выполнения нескольких запросов, а я предлагаю всё в одном запросе.
 
Выздоравливайте.
Записан
Batler    ↓ 
14 Сентябрь, 2009, 04:14:04 , спустя 17 дней 22 часа 2 минуты 27 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 4
Сообщений: 142
Сила слова: 2.82

Благодарю!
Почти поправился. Еще месяц где-то заживать буду.
По теме:
испытал запросы, которые предлагает AndryG. У меня так и не получилось заставить его работать.
Потому что без FROM юзать запрос нельзя, а если вставить имя таблицы с одним столбцом то любой селект вернет пустоту.
Но даже не смотря на это мне удалось оценить производительность. Она снизилась (если учесть еще и тот факт, что часть запросов просто не выполнялось, потому как вставки не производились.). Я думаю это произошло из-за этого:
Запросы к базе получались в цикле, а это уже плохо.
Запрос с подзапросом
 
Сразу скажу что без подготовленных выражений (т.е. не так как предлагал AndryG)
Записан
AndryG    ↓ 
14 Сентябрь, 2009, 04:31:45 , спустя 17 минут 41 секунду
НЕ ХУЕТА! ХУЕТА!
Группа: Адекваты

Карма: 1
Сообщений: 233
Сила слова: 0.43

Как можно оценить производительность, если запрос так и не заработал.
Записан
Batler    ↓ 
14 Сентябрь, 2009, 04:47:40 , спустя 15 минут 55 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 4
Сообщений: 142
Сила слова: 2.82

Он работал некорректно, но оценить производительность по нему все же можно было.
Записан
Страниц: 1 [2]
Печать
 

Перейти в: