ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1061  
Старый 02.03.2010, 01:36
+casper+
Banned
Регистрация: 27.06.2009
Сообщений: 200
Провел на форуме:
944465

Репутация: 68
Отправить сообщение для +casper+ с помощью ICQ
По умолчанию

каким запросом делать поиск по колонке?? мне например нужно проверять есть ли значение в базе или нет, если нет то записать, а если есть удалить. как наваять такую ф-ю?
 
Ответить с цитированием

  #1062  
Старый 02.03.2010, 01:44
+casper+
Banned
Регистрация: 27.06.2009
Сообщений: 200
Провел на форуме:
944465

Репутация: 68
Отправить сообщение для +casper+ с помощью ICQ
По умолчанию

НTL, скорость зависит от твоей машины.
 
Ответить с цитированием

  #1063  
Старый 10.03.2010, 12:33
OdaN
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
Провел на форуме:
473495

Репутация: 39
Отправить сообщение для OdaN с помощью ICQ
По умолчанию

Подскажите, плз. Нужен sql запрос в мускуль, который будет возвращать даты за определенный интервал. Чтобы было понятнее - сейчас пользуюсь таким запрсом:

Код:
SELECT date
FROM ( 
SELECT curdate()-interval 4 day  AS date
UNION ALL SELECT curdate()-interval 3 day 
UNION ALL SELECT curdate()-interval 2 day 
UNION ALL SELECT curdate()-interval 1 day 
UNION ALL SELECT curdate() 
UNION ALL SELECT curdate()+interval 1 day  
UNION ALL SELECT curdate()+interval 2 day
UNION ALL SELECT curdate()+interval 3 day
UNION ALL SELECT curdate()+interval 4 day
) as t
Но нужно более гибкое решение, чтобы можно было проще менять количество дней до\после curdate()
 
Ответить с цитированием

  #1064  
Старый 10.03.2010, 13:44
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Плюс к дате:

select adddate(curdate(),rownum) ddate from (select @r:=@r+1 rownum, t.* from (select @r:=0)a, information_schema.tables t where @r < datediff('2010-02-01','2010-01-10'))x

минус к дате:

select adddate(curdate(),-rownum) ddate from (select @r:=@r+1 rownum, t.* from (select @r:=0)a, information_schema.tables t where @r < datediff('2010-02-01','2010-01-10'))x

Код:
datediff('2010-02-01','2010-01-10')
тут задается кол-во дней + требуется так называемая "большая таблица", в которой записей не меньше, чем кол-во дней, в пример взята information_schema.tables

http://www.sql.ru/Forum/actualthread.aspx?tid=667216&hl=adddate
 
Ответить с цитированием

  #1065  
Старый 10.03.2010, 14:39
OdaN
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
Провел на форуме:
473495

Репутация: 39
Отправить сообщение для OdaN с помощью ICQ
По умолчанию

А возможно без больших таблиц?
Считать rownum каким нибудь циклом, или вроде того?
Ведь если мне понадобится посчитать до числа большего чем кол-во строк в "большой таблице" (она ведь не бесконечна), то будет ошибка...

В любом случае спасибо и за это =)

Последний раз редактировалось OdaN; 10.03.2010 в 14:42..
 
Ответить с цитированием

  #1066  
Старый 10.03.2010, 14:42
b3
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме:
1698585

Репутация: 818


Отправить сообщение для b3 с помощью ICQ
По умолчанию

Цитата:
Сообщение от +casper+  
каким запросом делать поиск по колонке?? мне например нужно проверять есть ли значение в базе или нет, если нет то записать, а если есть удалить. как наваять такую ф-ю?
PHP код:
if($db->num_rows($db->query("SELECT * FROM users WHERE login='$_POST[login]';")) > 0) {
echo 
'login exists';
exit;

 
Ответить с цитированием

  #1067  
Старый 20.03.2010, 10:49
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Наверное глупый вопрос,но Sql это моя слабая сторона(одна из многих ), а вопрос собственно такой:
Как с помощью одного запроса update отредактировать 2 записи.То есть, хочу что то вроде:
Код:
UPDATE table SET col=val WHERE id=1 and WHERE id=2;
Должно получиться так,что бы отредактировалась и 1 и 2 записи.такой вот запрос есесно непрокатывает,а гугл предлагает только запросы с if-then, что я думаю тут использовать не кошерно, и будет проще составить 2 запроса.А 2 запроса составлять не хочу,ибо данные редактируютсья одинаковые,лишний код,ну вы понеле.
Может под-запросом,мили исчо как измудрится?
 
Ответить с цитированием

  #1068  
Старый 20.03.2010, 12:24
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме:
804931

Репутация: 526
По умолчанию

Цитата:
Сообщение от m0Hze  
Наверное глупый вопрос,но Sql это моя слабая сторона(одна из многих ), а вопрос собственно такой:
Как с помощью одного запроса update отредактировать 2 записи.То есть, хочу что то вроде:
Код:
UPDATE table SET col=val WHERE id=1 and WHERE id=2;
Должно получиться так,что бы отредактировалась и 1 и 2 записи.такой вот запрос есесно непрокатывает,а гугл предлагает только запросы с if-then, что я думаю тут использовать не кошерно, и будет проще составить 2 запроса.А 2 запроса составлять не хочу,ибо данные редактируютсья одинаковые,лишний код,ну вы понеле.
Может под-запросом,мили исчо как измудрится?
Давай всмотримся и вдумаемся в то, что ты написал.
Итак, грубые приближения:
1) ключевое слово WHERE... Оно одно, после него должен идти предикат;
2) "id = 1 AND id = 2".Т.е. id одновременно должен быть равен и 1, и 2. Немного странно, неправда ли? Думаю уместнее будет дизъюнкция

Учитывая вышеизложенное, можем составить запрос:
Код:
UPDATE table SET col=val WHERE id=1 OR id=2;
Уже должно работать... Но выглядит как то странновато, не правда ли? Особенно на больших наборах данных. Для подобных ситуаций был придуман оператор IN:
Код:
UPDATE table SET col=val WHERE id IN(1,2)
 
Ответить с цитированием

  #1069  
Старый 20.03.2010, 12:26
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Цитата:
Сообщение от VDShark  
Давай всмотримся и вдумаемся в то, что ты написал.
Итак, грубые приближения:
1) ключевое слово WHERE... Оно одно, после него должен идти предикат;
2) "id = 1 AND id = 2".Т.е. id одновременно должен быть равен и 1, и 2. Немного странно, неправда ли? Думаю уместнее будет дизъюнкция

Учитывая вышеизложенное, можем составить запрос:
Код:
UPDATE table SET col=val WHERE id=1 OR id=2;
Уже должно работать... Но выглядит как то странновато, не правда ли? Особенно на больших наборах данных. Для подобных ситуаций был придуман оператор IN:
Код:
UPDATE table SET col=val WHERE id IN(1,2)
Я or не пробывал потому,что это или, и я думал оно исключающее ,Ж(
Спосебя)
 
Ответить с цитированием

  #1070  
Старый 20.03.2010, 21:42
InfectedM
Познающий
Регистрация: 04.11.2007
Сообщений: 51
Провел на форуме:
310791

Репутация: 6
Отправить сообщение для InfectedM с помощью ICQ
По умолчанию

Нужно соеденить поля кабинетов и поля должностей в таблице сотрудник.
Подскаите плиз в чем ошибка?

Цитата:
select adres,telefon,fio,id_dolzhnost,nomerKabineta from sotrudnik
left join (kabinet,dolzhnost) on
(kabinet.id_kabinet = sotrudnik.id_kabinet AND dolzhnost.id_dolzhnost = sotrudnik.id_dolzhnost)
синтаксис еще плохо знаю...ругается на запятую

Последний раз редактировалось InfectedM; 20.03.2010 в 22:49..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сетевой этикет (Перед тем, как задать вопрос хакеру) satana-fu Статьи 7 21.10.2009 07:40
Ответы на часто задаваемые вопросы + линки на статьи по SQL/XSS/PHP-инклуд Jokester Уязвимости 2 28.06.2009 00:19
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ