Jump to content
  • 0

Вложенные запросы в конструкции where


freeneutron
 Share

Question

Скажите, вложенные запросы в конструкции where выполняются один раз или несколько? Например, я хочу удалить устаревшие записи, так, что бы осталось всего 100. Какой запрос будет экономичнее:

delete fom tab where (select max(id) from tab) - 100 > id

или

delete fom tab where $max_id - 100 > id

, где $max_id = $db->query('select max(id) from tab')

?

Edited by freeneutron
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

LunatiK, А эта вложенная конструкция (select max(id) from tab) в первом запросе выполняется один раз для всех записей или много раз, то есть, для каждой записи отдельно?

Edited by freeneutron
Link to comment
Share on other sites

  • 0

LunatiK, А эта вложенная конструкция (select max(id) from tab) в первом запросе выполняется один раз для всех записей или много раз, то есть, для каждой записи отдельно?

Один.

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

Link to comment
Share on other sites

  • 0

Ну и как вариант в два запроса:


$last = $db->query('select `id` from `tab` order by `id` DESC LIMIT 100');

$db->query('delete from `tab` where `id` NOT IN ('.join(', ',$last).')');

Как-то так, мож где и накосячил, но суть ясна надеюсь

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy