2014-12-14 2 views
-3

Сервер Mysql перегружает выполнение этих 2 запросов.MYSQL перегружен

UPDATE устройства t1 INNER JOIN позиции t2 на t1.id = t2.device_id set t1.latestPosition_id = (SELECT id FROM position WHERE device_id = t1.id ORDER BY id DESC LIMIT 1), t1.speed = (скорость SELECT С позиции, в которых device_id = t1.id ORDER BY ID DESC LIMIT 1

ВСТАВИТЬ в позиции (altitude, course, latitude, longitude, power, speed, time, device_id, valid) VALUES ('$ faltitude [$ я]' , '$ fcource [$ я]', '$ flatitude [$ я]', '$ flongtitude [$ я]', '$ fpower [$ я]', '$ fspeed [$ я]', '$ FTIME [ $ i] ',' $ fid [$ i] ',' 1 ')

Im начинающий и я пытаюсь мой уровень лучше всего решить эту проблему.

Пожалуйста, помогите мне.

+0

Это код ошибки, которую я получаю, если он пытается выполнить его из phpmyadmin # 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' в строке 1 – Shameerariff

+1

Что вы подразумеваете под * перегрузкой *? –

+0

В первом выражении есть синтаксическая ошибка SQL. Закрывающий пар отсутствует во втором подзапросе (конец инструкции.) – spencer7593

ответ

1

Первый запрос запускает два подзапроса и обновляет все записи в таблицах. В зависимости от того, насколько велики таблицы и насколько силен ваш сервер БД, меня не удивит, что он закроется. Для начала вы можете попробовать разбить его на два запроса:

Устройства UPDATE t1 INNER JOIN позиции t2 на t1.id = t2.device_id set t1.latestPosition_id = (SELECT id FROM position WHERE device_id = t1.id ORDER BY id DESC LIMIT 1);

UPDATE устройства t1 INNER JOIN позиции t2 на t1.id = t2.device_id set t1.speed = (SELECT speed FROM position WHERE device_id = t1.id ORDER BY id DESC LIMIT 1);

Ошибка вашего синтаксиса во втором запросе, скорее всего, связана с прохождением переменных типа $ faltitude [$ i] '. Одна из этих переменных, вероятно, имеет значение типа «не делать», а «вызывает ошибку sqll. Вы должны использовать привязку параметров или, по крайней мере, избегать ввода из одинарных кавычек.

+0

Спасибо. Я проверю это прямо сейчас и вернусь к вам. – Shameerariff

+0

Спасибо, что это сработало для меня – Shameerariff

Смежные вопросы