Видимо да, но получится уже 2 запроса. Но да фиг с ними.
Но а как же когда не пустой? ведь не пашет и не пустой.
Или надо пыхом бежать по результатам и самому составлять строку из цифр?
Вот тут и пойдет возрастание времени в тысячи раз и может получиться очень длинная строка,
на которую мускуль может ругнуться что превышена длина запроса.
И на кой фиг по всему тырнету валяются красивые образцы
$query->condition('id', $subquery, 'IN');
Просто маразм выполняется он не часто.
Просто личные соображения - выше я про циклы написал.
Может и в mysql-сервере все будет быстро, а вот если на php такой код реализовать,
то будет очень медленно - отсюда мысли тянутся.
Не раз видел конструкции типа delete t.* from t join t2 using(key) where ..., вот нафига такое писать, когда есть подзапросы? аллергия на них у некоторых чтоли...
Одна задача высвобождает место в таблице по определенному условию.
Вторая задача выбирает свободные строки (путем join они вычисляются)
и уже работает с освободившимися.
Типа конвеера.
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).
Не, не пойму куда ложить этот патч.
Кстати третий результат по гуглу - этот пост
Неужели никто не удаляет с LIMIT?
Мне это нужно для постепенного вычищения таблицы.
Последующий код выбирает очищенные строки. Вернее делает join и юзает то что чисто. Вот и идея пришла - через UPDATE пойду. Поставлю нолики где надо.
Это до меня дошло что нормальное поведение.
И на результат этот натыкался.
Вот не пойму куда этот патч приложить... попробую найти такой код.
В ядро лезть не хочется - ибо что это за модуль который требует хаков ядра.
Вот я к чему.
Когда выполняется ->execute() вылетает ошибка pdo exception там отображается этот запрос.
Он имеет вид как указал - после LIMIT два числа. Скопировал его и выполнил в phpMyAdmin - та же ошибка.
Убрал 0 и запрос прошел. Отсюда и вывод что проблема глубокая.
Обычный db_delete возвращает объект у которого нет range() или чего-то похожего чтобы задать число строк.
Вот как-то так вот. Гуглил - но ничего внятного не нашел.
Не могу выполнить запрос удаления с LIMIT
Видимо да, но получится уже 2 запроса. Но да фиг с ними.
Но а как же когда не пустой? ведь не пашет и не пустой.
Или надо пыхом бежать по результатам и самому составлять строку из цифр?
Вот тут и пойдет возрастание времени в тысячи раз и может получиться очень длинная строка,
на которую мускуль может ругнуться что превышена длина запроса.
И на кой фиг по всему тырнету валяются красивые образцы
$query->condition('id', $subquery, 'IN');
Не могу выполнить запрос удаления с LIMIT
Просто маразм
выполняется он не часто.
Просто личные соображения - выше я про циклы написал.
Может и в mysql-сервере все будет быстро, а вот если на php такой код реализовать,
то будет очень медленно - отсюда мысли тянутся.
Не могу выполнить запрос удаления с LIMIT
хы, хы, хы - воспользовался :), помоему здорово, спасибо, тоже пригодилось.
Не могу выполнить запрос удаления с LIMIT
Одна задача высвобождает место в таблице по определенному условию.
Вторая задача выбирает свободные строки (путем join они вычисляются)
и уже работает с освободившимися.
Типа конвеера.
Не могу выполнить запрос удаления с LIMIT
В самом стандартном не знаю, может и нельзя.
Не могу выполнить запрос удаления с LIMIT
Как ни хотел я юзать подзапросы, а по другому никак.
Решение вот такое.
Не могу выполнить запрос удаления с LIMIT
Видимо просто придется разобраться с ошибкой
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).
Не могу выполнить запрос удаления с LIMIT
Не, не пойму куда ложить этот патч.![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
Кстати третий результат по гуглу - этот пост
Неужели никто не удаляет с LIMIT?
Мне это нужно для постепенного вычищения таблицы.
Последующий код выбирает очищенные строки. Вернее делает join и юзает то что чисто.
Вот и идея пришла - через UPDATE пойду. Поставлю нолики где надо.Не могу выполнить запрос удаления с LIMIT
Это до меня дошло что нормальное поведение.
И на результат этот натыкался.
Вот не пойму куда этот патч приложить... попробую найти такой код.
В ядро лезть не хочется - ибо что это за модуль который требует хаков ядра.
Вот я к чему.
Не могу выполнить запрос удаления с LIMIT
Когда выполняется ->execute() вылетает ошибка pdo exception там отображается этот запрос.
Он имеет вид как указал - после LIMIT два числа. Скопировал его и выполнил в phpMyAdmin - та же ошибка.
Убрал 0 и запрос прошел. Отсюда и вывод что проблема глубокая.
Обычный db_delete возвращает объект у которого нет range() или чего-то похожего чтобы задать число строк.
Вот как-то так вот. Гуглил - но ничего внятного не нашел.