Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите составить запрос, или вообще возможноли это сделать

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Designer
Отправлено: 12 Июля, 2014 - 16:58:03
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




возможно ли 1 запросом сделать проверку затем добавление и после добавления получение тех данных которые долбавились?!

проверка
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT COUNT(*) FROM parse_work WHERE DATE(`register`)=CURRENT_DATE
  3.  


добавление
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT INTO parse_work SET `register`=NOW()
  3.  


получение
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM parse_work WHERE DATE(`register`)=CURRENT_DATE
  3.  

(Добавление)
Примерно понимаю что это связано с IF NOT () но как даже не представляю
 
 Top
LIME
Отправлено: 12 Июля, 2014 - 17:26:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




нифига не понятна задача
но дам наводку
REPLACE INTO
ON DUPLICATE KEY
что то да подойдет надеюсь
(Добавление)
это 2 разных наводки

(Отредактировано автором: 12 Июля, 2014 - 17:27:28)

 
 Top
Designer
Отправлено: 12 Июля, 2014 - 18:18:00
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Непонимаю что непонятного в моем первом посте!

Попробую обьяснить еще раз!

Вобщем у меня делается 3 запроса,

1
это result который проверяет существование записи за чегодняшний день в тавлице
и если записи нет, то добавляем ее

а потом делаем запрос данный за сегодняшний день

я хочу объединить эти запросы, и делать в 1 запрос
(Добавление)
Ребят ну помогите пожалуйста!!!! ))


SELECT * FROM parse_work @ТУТ как бы код проверки существования записи и если она не найдена деалется добавление@ WHERE DATE(`register`)=CURRENT_DATE
То есть запрос полюбому вернет данные
 
 Top
LIME
Отправлено: 12 Июля, 2014 - 19:05:22
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Designer пишет:
Непонимаю что непонятного в моем первом посте!
нихрена непонятно
попробую предположить
если существует запись то надо ее обновить
если нет то создать
тогда мои подсказки самое то
особенно первая
(Добавление)
Designer ты тупица
не первый твой идиотский пост читаю где ты даже по человечески не смог проблему сформулировать
я умею ванговать но не для тебя, идиот
 
 Top
Designer
Отправлено: 12 Июля, 2014 - 19:24:41
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




LIME, во первых оскорбления не в тему, были бы в тему промолчал, Ты не прав!

во вторых я если честно не пойму что непонятного в моем вопросе, и мне нахер не нужно обновление, мне нужно добавление записи, то есть,

что то выполняется на постоянной основе и записывается в определенное поле в этой таблице, далее наступают новые сутки, и само собой записи за эти новые сутки нет, значит ее нужно записать просто создав запись а поля буду автоматом со значением 0, и после этого всего получить данные, пусть даже нулевые, но главное что за новые сутки в таблице появилась запись! Проверка и создание это ведь уже 2 разных запроса, не так ли??

Я в 1 строчке четко описал необходимое и даже привел последовательный код тех самых запросов в БД с пояснением!

Я в шоке если чесно!
(Добавление)
и еще, по твоей перво2й наводке загуглил, да что то типо того, но я не особо силен в SQL, потому и создал тему о помощи

(Отредактировано автором: 12 Июля, 2014 - 19:30:43)

 
 Top
Sail
Отправлено: 15 Июля, 2014 - 09:10:29
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




Если по полю register построен уникальный индекс, то вместо проверки на существование и вставки можно воспользоваться запросом
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT IGNORE INTO parse_work SET `register`= NOW()
 
 Top
soffrick
Отправлено: 18 Июля, 2014 - 13:56:25
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




Designer пишет:
возможно ли 1 запросом сделать проверку затем добавление и после добавления получение тех данных которые долбавились?!

проверка
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT COUNT(*) FROM parse_work WHERE DATE(`register`)=CURRENT_DATE
  3.  


добавление
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT INTO parse_work SET `register`=NOW()
  3.  


получение
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM parse_work WHERE DATE(`register`)=CURRENT_DATE
  3.  

(Добавление)
Примерно понимаю что это связано с IF NOT () но как даже не представляю
union подойдет?


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
Sail
Отправлено: 18 Июля, 2014 - 14:56:14
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




soffrick пишет:
union подойдет?

Казалось бы, при чём тут "union"? Шок
 
 Top
broshurkaplus
Отправлено: 20 Июля, 2014 - 12:21:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




попробуйте так как вариант:
добавляйте сразу, не надо 2 запроса. в таблице повесьте уникальный индекс на поле, при его повторении вставки не произойдет и выводите ответ пользователю
для добавления непонятно:
- если вывести данные пользователю - выж их добавляете, можете и в ответе вывести
- если с ними манипуляции какие то, например в другую таблицу - так сделайте триггер в таблице с нужным действием, тем самым перенесете(доверите) всю работу непосредственно самой базе.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB