Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Hed-kun

Программирование, т. 5.1.

Рекомендованные сообщения

чет в голосину, ты только вчера начал, меньше суток прошло

 

представляю какие помои у тебя сейчас в голове

Он же хтмл учил, а не квантовую хромодинамику.

Поделиться сообщением


Ссылка на сообщение

да не) я изначально немного знал хтмл ну и цсс немного,так что пока не сложно)

Поделиться сообщением


Ссылка на сообщение

надо удалить старые записи из базы, оставив 100 новых

в инете нашел хуйню какую-то которая выдавала какой то странный эррор, переделал получилось такое

DELETE rc from recent_actions as rc
join (
select * from recent_actions
order by time desc, id desc
limit 100 offset 100)

as lim ON rc.time < lim.time OR rc.time = lim.time AND rc.id < lim.id;

 

джойн выбирает последние 100 с оффсетом 100

а че делает последняя строка я ваще не понял

на практике базу с 40к записей потерло оставив последние 100, хотя судя по джойну должно удалить записи 39800-39900 :hmm:

поясните за последнюю строку плс че там за условие

нахуй тебе тут джоин?

Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение

ох уж это веб-программирование

Поделиться сообщением


Ссылка на сообщение
(изменено)

ну вроде как я понял надо сравнить все записи с последними ста и те что старее потереть

а как без него? id в базе с auto_increment + time это метка времени unix

запрос вообще какойто неправильный но делает то что надо :trollface:


Изменено пользователем justice_st

Поделиться сообщением


Ссылка на сообщение
(изменено)

бля :fffuuu::avtorklif:

 

еще вопрос: как отличить бота-индексатора от обычного юзера?


Изменено пользователем justice_st

Поделиться сообщением


Ссылка на сообщение

ну вроде как я понял надо сравнить все записи с последними ста и те что старее потереть

а как без него? id в базе с auto_increment + time это метка времени unix

запрос вообще какойто неправильный но делает то что надо :trollface:

Выражение в джоине выбирает 100 записей с оффсетом 100.

 

Выражение в конце сравнивает каждую из только что выбранных записей с каждой записью в таблице, и если условие выполняется, удаляет её.

Все правильно работает.

Как видишь, у двапоя решение на самую малость проще :trollface:


Не проигрываю доту с 2013го - dotabuff

Поделиться сообщением


Ссылка на сообщение

научрук заставил писать диплом на C#

жру говно лопатами :nate:

И чем ты не доволен?

ничем

у меня вопрос

чо читать

куда смотреть

как в c# работать с базой?

Поделиться сообщением


Ссылка на сообщение

бля :fffuuu::avtorklif:

 

еще вопрос: как отличить бота-индексатора от обычного юзера?

юзерагентом

Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение
(изменено)

mysql> delete * from recent_tmp OFFSET 100;

ERROR 1064 (42000): 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 '* from recent_tmp OFFSET 100' at line 1

http://stackoverflow...t-infinite-rows :hmm:

 

mysql> delete * from recent_tmp order by id desc limit 100 offset 100;

ERROR 1064 (42000): 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 '* from recent_tmp order by id desc limit 100 offset 100' at line 1

 

mysql> delete from recent_tmp order by id desc limit 100 offset 100;

ERROR 1064 (42000): 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 'offset 100' at line 1


Изменено пользователем justice_st

Поделиться сообщением


Ссылка на сообщение

DELETE FROM recent_actions LIMIT 18446744073709551610 OFFSET 100

 

а бля у тебя не та база, тогда

 

DELETE FROM recent_actions LIMIT 18446744073709551610, 100

 

ебучий sql

 

мир им дал монгу, постгре полуйся нехочу, нет хочу mysql


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение

DELETE FROM recent_actions LIMIT 18446744073709551610 OFFSET 100

 

а бля у тебя не та база, тогда

 

DELETE FROM recent_actions LIMIT 18446744073709551610, 100

 

a3qdFqG.jpg
ебучий sql

 

мир им дал монгу, постгре полуйся нехочу, нет хочу mysql

я даже таких слов то не знаю :palevo:

Поделиться сообщением


Ссылка на сообщение

]я даже таких слов то не знаю :palevo:

Это норма, если ты не хипстер ебучий.

Поделиться сообщением


Ссылка на сообщение

научрук заставил писать диплом на C#

жру говно лопатами :nate:

И чем ты не доволен?

ничем

у меня вопрос

чо читать

куда смотреть

как в c# работать с базой?

смотри в гугл

Поделиться сообщением


Ссылка на сообщение
DELETE FROM recent_tmp ORDER BY id ASC LIMIT 100

Поделиться сообщением


Ссылка на сообщение

DELETE FROM recent_tmp ORDER BY id ASC LIMIT 100

Удалит последнюю сотню. А ему нужно оставить сотню.


Не проигрываю доту с 2013го - dotabuff

Поделиться сообщением


Ссылка на сообщение

А, ну тогда

DELETE FROM recent_tmp WHERE id < (SELECT id FROM recent_tmp ORDER BY id DESC LIMIT 100,1)

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...