serega386: Комментарии

Главные вкладки

26 сентября 2013 в 10:04

Видимо да, но получится уже 2 запроса. Но да фиг с ними.
Но а как же когда не пустой? ведь не пашет и не пустой.
Или надо пыхом бежать по результатам и самому составлять строку из цифр?
Вот тут и пойдет возрастание времени в тысячи раз и может получиться очень длинная строка,
на которую мускуль может ругнуться что превышена длина запроса.
И на кой фиг по всему тырнету валяются красивые образцы
$query->condition('id', $subquery, 'IN');

26 сентября 2013 в 9:43

Просто маразм Smile выполняется он не часто.
Просто личные соображения - выше я про циклы написал.
Может и в mysql-сервере все будет быстро, а вот если на php такой код реализовать,
то будет очень медленно - отсюда мысли тянутся.

25 сентября 2013 в 16:16

"deb" wrote:
Не раз видел конструкции типа delete t.* from t join t2 using(key) where ..., вот нафига такое писать, когда есть подзапросы? аллергия на них у некоторых чтоли...

хы, хы, хы - воспользовался :), помоему здорово, спасибо, тоже пригодилось.

25 сентября 2013 в 15:17

Одна задача высвобождает место в таблице по определенному условию.
Вторая задача выбирает свободные строки (путем join они вычисляются)
и уже работает с освободившимися.
Типа конвеера.

24 сентября 2013 в 16:36

Видимо просто придется разобраться с ошибкой

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''15'' at line 1: DELETE FROM {my_table} WHERE chresult LIKE :t LIMIT :limit; Array ( [:t] => %Ошибка: Ваш% [:limit] => 15 ) в функции mymodule_check() (строка 239 в файле /.../www/sites/all/modules/mymodule/mymodule.module).

24 сентября 2013 в 15:03

Не, не пойму куда ложить этот патч.
Кстати третий результат по гуглу - этот пост Smile
Неужели никто не удаляет с LIMIT? Smile
Мне это нужно для постепенного вычищения таблицы.
Последующий код выбирает очищенные строки. Вернее делает join и юзает то что чисто.
Вот и идея пришла - через UPDATE пойду. Поставлю нолики где надо.

24 сентября 2013 в 14:38

Это до меня дошло что нормальное поведение.
И на результат этот натыкался.
Вот не пойму куда этот патч приложить... попробую найти такой код.
В ядро лезть не хочется - ибо что это за модуль который требует хаков ядра.
Вот я к чему.

24 сентября 2013 в 13:38

Когда выполняется ->execute() вылетает ошибка pdo exception там отображается этот запрос.
Он имеет вид как указал - после LIMIT два числа. Скопировал его и выполнил в phpMyAdmin - та же ошибка.
Убрал 0 и запрос прошел. Отсюда и вывод что проблема глубокая.
Обычный db_delete возвращает объект у которого нет range() или чего-то похожего чтобы задать число строк.
Вот как-то так вот. Гуглил - но ничего внятного не нашел.