ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

02.03.2010, 01:36
|
|
Banned
Регистрация: 27.06.2009
Сообщений: 200
Провел на форуме: 944465
Репутация:
68
|
|
каким запросом делать поиск по колонке?? мне например нужно проверять есть ли значение в базе или нет, если нет то записать, а если есть удалить. как наваять такую ф-ю?
|
|
|

02.03.2010, 01:44
|
|
Banned
Регистрация: 27.06.2009
Сообщений: 200
Провел на форуме: 944465
Репутация:
68
|
|
НTL, скорость зависит от твоей машины.
|
|
|

10.03.2010, 12:33
|
|
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
Провел на форуме: 473495
Репутация:
39
|
|
Подскажите, плз. Нужен 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()
|
|
|

10.03.2010, 13:44
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Плюс к дате:
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
|
|
|

10.03.2010, 14:39
|
|
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
Провел на форуме: 473495
Репутация:
39
|
|
А возможно без больших таблиц?
Считать rownum каким нибудь циклом, или вроде того?
Ведь если мне понадобится посчитать до числа большего чем кол-во строк в "большой таблице" (она ведь не бесконечна), то будет ошибка...
В любом случае спасибо и за это =)
Последний раз редактировалось OdaN; 10.03.2010 в 14:42..
|
|
|

10.03.2010, 14:42
|
|
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме: 1698585
Репутация:
818
|
|
Сообщение от +casper+
каким запросом делать поиск по колонке?? мне например нужно проверять есть ли значение в базе или нет, если нет то записать, а если есть удалить. как наваять такую ф-ю?
PHP код:
if($db->num_rows($db->query("SELECT * FROM users WHERE login='$_POST[login]';")) > 0) {
echo 'login exists';
exit;
}
|
|
|

20.03.2010, 10:49
|
|
Он хакер.
Регистрация: 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 запроса составлять не хочу,ибо данные редактируютсья одинаковые,лишний код,ну вы понеле.
Может под-запросом,мили исчо как измудрится?
|
|
|

20.03.2010, 12:24
|
|
Участник форума
Регистрация: 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)
|
|
|

20.03.2010, 12:26
|
|
Он хакер.
Регистрация: 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 не пробывал потому,что это или, и я думал оно исключающее ,Ж(
Спосебя)
|
|
|

20.03.2010, 21:42
|
|
Познающий
Регистрация: 04.11.2007
Сообщений: 51
Провел на форуме: 310791
Репутация:
6
|
|
Нужно соеденить поля кабинетов и поля должностей в таблице сотрудник.
Подскаите плиз в чем ошибка?
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..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|