Guest User

Untitled

a guest
Sep 27th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. п.1 обходом слева направо и сверху вниз найти свободную область размером 1х1
  2. п.2 обходом слева направо и сверху вниз найти свободную область размером 2х2
  3.  
  4. select x-2+1 startX, y-2+1 startY, x endX, y endY
  5. from (
  6. select @num:=if(y=@y+1 and @x=x,@num+1,1) nY, @y:=y y, @x:=x x, nX
  7. from (
  8. select @num:=if(x=@x+1 and y=@y,@num+1,1) nX,@x:=x x, @y:=y y
  9. from table1 T, (select @x:=0, @num:=0, @y:=-1) A
  10. where status=0 and id<=100
  11. order by y, x
  12. ) B
  13. where nX>=2
  14. order by x, y
  15. ) C
  16. where nY>=2
  17. order by y, x
  18. limit 1
  19.  
  20. update table1 T
  21. join (наш запрос) N
  22. on T.x between N.startX and N.endX
  23. and T.y between N.startY and N.endY
  24. set status=1
Add Comment
Please, Sign In to add comment