Архив

Публикации с меткой «SQL»

MySQL DELETE синтаксическая ошибка

08 Июн 2010

Есть ли синтаксическая ошибка в следующем SQL-запросе?

DELETE FROM mytable t WHERE t.id IN (1,2,3,4,5)

Ошибка есть! Правда, я не сразу понял, в чем дело и почему MySQL не хочет пропускать запрос.

Правильным будет любой из следующих вариантов:


DELETE FROM mytable WHERE id IN (1,2,3,4,5);
DELETE t FROM mytable t WHERE t.id IN (1,2,3,4,5);

Суть в том, что если используете алиас для таблицы, то его нужно указать после DELETE.

Или можно указать имя таблицы вместо алиаса.

СУБД должна знать из какой таблицы производить удаление.

Более понятна такая логика MySQL будет при использовании JOIN-синтаксиса оператора DELETE, или просто при удалении из нескольких таблиц:


-- удаление произойдет только из таблицы table1
DELETE t1 FROM table1 t1
INNER JOIN table2 t2 ON t1.id = t2.table1_id
WHERE t1.id IN (1,2,3,4,5)

-- удалятся данные из таблиц table1 и table2
DELETE t1, t2
FROM table1 t1, table2 t2, table3 t3
WHERE t1.id=t2.id AND t2.id=t3.id

MySQL , , ,

CodeIgniter. Как посмотреть выполненные sql-запросы.

25 Мар 2010

Очень просто! :)

Если быть кратким, то:


//выполненные запросы:
print_r($this->db->queries);
//время выполнения запросов:
print_r($this->db->query_times);

А далее можно использовать эти массивы как необходимо. Сделать временные print_r() для отладки или оформить красивый вывод результатов в админ. части сайта.
Обратите внимание, что данные массивы будут пусты, если


$this->db->save_queries = FALSE; //(по умолчанию TRUE)

Читать полностью…

CodeIgniter , ,