ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1141  
Старый 03.05.2010, 14:05
Аватар для VDShark
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме:
804931

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

Цитата:
Сообщение от Dark_cracker  
имелось введу строки , с тем разобрался ну всёравно не откозался бы от ответа...
Если есть первичный ключ - особой проблемы не вижу. Берем по одному из дублирующихся, и удаляем кортежи с не совпадающими PK.
Если же его нет (мало ли кто, как и зачем проектировал) - то почему бы не наживать себе геморрой и не воспользоваться временными таблицами?
 
Ответить с цитированием

  #1142  
Старый 04.05.2010, 17:34
Аватар для OdaN
OdaN
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
Провел на форуме:
473495

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

Помогите плз с оптимизацией:
есть запрос:
PHP код:
select w.city,r.name as cityname,w.sunrise,w.sunset,w.date,w.dpart,w.type,w.winddir,w.windspd,w.pressure,w.dampness,w.obstime,w.wcolor,w.temp,w.ncolor,w.ntemp,w.tomcolor,w.tomtemp,r.offset,
if (
w.sunrise date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s')
and 
w.sunset date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s'),
timediff(w.sunset,date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s')),
if (
date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s') > '00:00:00' and
date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s') < w.sunrise,
timediff(w.sunrise,date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s')),
addtime(timediff('23:59:59',date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s')),w.sunrise))
) as `
change`,
if (
w.sunrise date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s')
and 
w.sunset date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s'),1,0) as lite,
date_sub(now(), interval (14400-(r.offset)) second) as `localtime`
from weather w left join regions r on w.city=r.city where w.city $city order by w.id desc limit 1 
Там часто используется выражения типа
Код:
date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s'))
для получения локального времени. как можно все это загнать в переменную, и в принципе уменьшить запрос, хотя-бы для экономии трафика?

Используется тут: http://export.selaz.org/weather/


Структура таблиц:
Код:
CREATE TABLE IF NOT EXISTS `regions` (
  `id` int(11) NOT NULL auto_increment,
  `yanid` int(11) NOT NULL,
  `city` int(11) NOT NULL,
  `name` varchar(64) NOT NULL,
  `offset` int(11) NOT NULL,
  `weather` tinyint(1) default NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `yanid` (`yanid`),
  UNIQUE KEY `city` (`city`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;


CREATE TABLE IF NOT EXISTS `weather` (
  `id` int(11) NOT NULL auto_increment,
  `city` int(11) NOT NULL,
  `sunrise` time NOT NULL,
  `sunset` time NOT NULL,
  `date` date NOT NULL,
  `dpart` tinyint(4) NOT NULL,
  `type` varchar(32) NOT NULL,
  `windspd` tinyint(4) NOT NULL,
  `winddir` varchar(8) NOT NULL,
  `pressure` smallint(6) NOT NULL,
  `dampness` tinyint(4) NOT NULL,
  `obstime` time NOT NULL,
  `temp` tinyint(11) NOT NULL,
  `wcolor` varchar(6) NOT NULL,
  `ncolor` varchar(6) NOT NULL,
  `ntemp` tinyint(4) NOT NULL,
  `tomcolor` varchar(6) NOT NULL,
  `tomtemp` tinyint(4) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `city` (`city`,`date`,`obstime`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

Последний раз редактировалось OdaN; 04.05.2010 в 17:39..
 
Ответить с цитированием

  #1143  
Старый 05.05.2010, 11:27
Аватар для dokwill
dokwill
Новичок
Регистрация: 25.06.2007
Сообщений: 16
Провел на форуме:
95371

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

помогите составить запрос к бд

есть таблица "data " в ней столбец "ALT" в этой таблице 35000 строк
Нужно заменить все данные столбца "ALT" для всех сторок и вставить значение по порядку от 1 - 35000. Как это сделать.
как то так ?
Update "data"
 
Ответить с цитированием

  #1144  
Старый 05.05.2010, 23:38
Аватар для MotoR
MotoR
Новичок
Регистрация: 25.04.2010
Сообщений: 6
Провел на форуме:
38184

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

Цитата:
Сообщение от dokwill  
помогите составить запрос к бд

есть таблица "data " в ней столбец "ALT" в этой таблице 35000 строк
Нужно заменить все данные столбца "ALT" для всех сторок и вставить значение по порядку от 1 - 35000. Как это сделать.
как то так ?
Update "data"
"UPDATE data SET ALT='$i' WHERE id='$i'"

где значение переменной $i от 1 до 35000, перебор осуществляется в цикле.
 
Ответить с цитированием

  #1145  
Старый 12.05.2010, 19:54
Аватар для Doom123
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


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

как проверить если в таблице table1 есть запись с номером 1 в колонке id если есть то выбрать колонку value у id = 1, а если записи с id = 1 в table1 нету выташить запись из table2 с id = 99? =)

зарание благодарен ))
 
Ответить с цитированием

  #1146  
Старый 12.05.2010, 20:15
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


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

SELECT * FROM table WHERE id=1 or id=99 limit 1
 
Ответить с цитированием

  #1147  
Старый 12.05.2010, 20:49
Аватар для Doom123
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


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

Pashkela ты вообще вопросы читаешь или просто так от балды пишешь?
 
Ответить с цитированием

  #1148  
Старый 12.05.2010, 21:13
Аватар для MotoR
MotoR
Новичок
Регистрация: 25.04.2010
Сообщений: 6
Провел на форуме:
38184

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

Цитата:
Сообщение от Doom123  
как проверить если в таблице table1 есть запись с номером 1 в колонке id если есть то выбрать колонку value у id = 1, а если записи с id = 1 в table1 нету выташить запись из table2 с id = 99?
Если я правильно понял, то будет приблизительно вот так:

PHP код:
<?php  
$query 
"SELECT value FROM table1 WHERE id =1";
$query1 "SELECT value FROM table2 WHERE id =99";  
if (
$result mysql_query($query)){ 
// дальнейшие необходимые действия, т.е. выполнилось первое условие существования записи в таблице tabel с id=1 

else {     
$result mysql_query($query1);     
// дальнейшие необходимые действия, т.е. выполнилось второе условие существования записи в таблице tabel2 с id=99 

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

  #1149  
Старый 12.05.2010, 21:15
Аватар для Doom123
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


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

MotoR до этого я бы и сам додумылся мне нужен 1 запрос )
 
Ответить с цитированием

  #1150  
Старый 12.05.2010, 21:24
Аватар для MotoR
MotoR
Новичок
Регистрация: 25.04.2010
Сообщений: 6
Провел на форуме:
38184

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

Ну а что мешает объединить эти два запроса через логическое "или" (OR) ?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сетевой этикет (Перед тем, как задать вопрос хакеру) 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