рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! рдФрд░ рдПрдХ рдмрд╛рд░ рдореИрдВ рдмрд╣реБрдд рдкрд░рд┐рд╖реНрдХреГрдд рдирд╛рдо рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рдиреАрдЪреЗ рджреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХрдИ рдХрд╛ рд╕рд╛рдордирд╛ рдЗрдВрдЯрд░рд╕реЗрдХреНрдЯрд┐рдВрдЧ рдЕрдВрддрд░рд╛рд▓ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рд╣реИред рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рджрд┐рди рдореИрдВрдиреЗ рдЬрд┐рд╕ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╡рд╣ рдЗрддрдирд╛ рддреБрдЪреНрдЫ рдирд╣реАрдВ рдерд╛ред рд▓реЗрдХрд┐рди, рдкрд╣рд▓реА рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗред
рдПрдХ рд░реЗрдЦреАрдп рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рдЕрдВрддрд░рд╛рд▓реАрдп рдЕрдВрддрд░рд╛рд▓ рдХреА рдЧрдгрдирд╛
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдВрддрд░рд╛рд▓ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ
рдпрд╣рд╛рдВ рдареАрдХ рд╕реЗ рдЬрд╛рдПрдВред
рд╕рдордп рдХреА рд╕реАрдзреА рд░реЗрдЦрд╛ рдкрд░ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ (рд╕рдордп рдЕрдВрддрд░рд╛рд▓) рдХреЗ рдЪреМрд░рд╛рд╣реЛрдВ рдХреА рдЧрдгрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдкрд╛рдВрдЪ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрд╕реНрдерд╛рдпреА рдЪреМрд░рд╛рд╣реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рд╕рдордп рдХреЗ рдПрдХ рдЦрдВрдб рдХреЛ "\" рдФрд░ рджреВрд╕рд░реЗ рдХреЛ "/ /" рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реВрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
- рд╕рдордп рдЕрдХреНрд╖ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рдирд╛ "/ \ / \"
- рд╕рдордп рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдкрд┐рдЫрдбрд╝рд╛ рд╣реБрдЖ "\ / \ /"
- рдШрдЯрдирд╛ "/ \ /"
- рдЕрд╡рд╢реЛрд╖рдг "\ / / \"
- рдореИрдЪ XX
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреМрд░рд╛рд╣реЗ рдХреЛ рд╕рдВрдХреЗрддреЛрдВ <,> рдФрд░ = рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрдХреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдореЗрдВ рд╕рдВрдХреЗрдд <=> = рд╣реЛрдиреЗ рд╕реЗ, рд╣рдо рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдЦрд╛рдХреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЪрд╛рд░ рддрдХ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд┐рд▓рдп, "рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐" рдФрд░ "рд╕рдВрдпреЛрдЧ" рдпрд╛ "рдЕрд╡рд╢реЛрд╖рдг" рдФрд░ "рд╕рдВрдпреЛрдЧ" рдпрд╛ "рд╡рд┐рд╕реНрдерд╛рдкрди рдФрд░" рд╕рдВрдпреЛрдЧ ") ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, "рдкреНрд░рд╡реЗрд╢" рдпрд╛ "рдЕрд╡рд╢реЛрд╖рдг" (рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдирд╣реАрдВ) рдХреЛ рднреА "рд╡рд┐рд╕реНрдерд╛рдкрди" рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рддреЛ, рдлреЙрд░реНрдо рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реЛрдиреЗ:
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ | рдкреНрд░рд╛рд░рдВрдн | рдЕрдВрдд |
user1 | 2 | 7 |
user2 | 5 | 9 |
user3 | 8 | 11 |
user4 | 1 | 12 |
рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджрд┐рдП рдЧрдП рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ (4-8 рдХрд╣рддреЗ рд╣реИрдВ), рд╣рдо рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
SET @start:=4; SET @end:=8; SELECT * FROM `table` WHERE (`start` >= @start AND `start` < @end) OR (`end` <= @end AND `end` > @start) OR (`start` < @end AND `end` > @start) OR (`start` >= @start AND `end` <= @end)
рдпрд╣ рдХреНрд╡реЗрд░реА рдкрд╣рд▓реЗ, рджреВрд╕рд░реЗ рдФрд░ рддреАрд╕рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд▓реМрдЯрд╛рдПрдЧреАред рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рд╣рдореНрдоред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЕрдВрддрд░рд╛рд▓ рдЕрдВрддрд░рд╛рд▓ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдФрд░ рднреА рд╕рд░рд▓ рд╣реИ: рдЪреМрд░рд╛рд╣реЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЪреМрд░рд╛рд╣реЗ рдХреЗ рдХреЗрд╡рд▓ рджреЛ рдорд╛рдорд▓реЗ рд╣реИрдВ:
- рдмреИрдХрд╡рд░реНрдб рдСрдлрд╝рд╕реЗрдЯ "\ \ / /"
- рдлреЙрд░рд╡рд░реНрдб рдСрдлрд╝рд╕реЗрдЯ "/ / \ \"
рдФрд░ рд╕рдордп рдХреА рдПрдХ рд╕рддрдд рд░реЗрдЦрд╛ рдкрд░ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рдЕрдВрддрд░рд╛рд▓ рдХрд╛ рдЕрдВрдд рджреВрд╕рд░реЗ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдХрдо рд╣реИред
рдФрд░ SQL рдХреНрд╡реЗрд░реА рдШрдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИ
SET @start:=4; SET @end:=8; SELECT * FROM `table` WHERE `start` >= @end OR `end` <= @start
рдФрд░ рдпрд╣рд╛рдВ рд╣рдо рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЧреИрд░-рдЪреМрд░рд╛рд╣реЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рддреЛ рдлрд┐рд░ рд╕рднреА рдЧреИрд░-рдЪреМрд░рд╛рд╣реЛрдВ рдХреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП?
WHERE NOT ( `start` >= @end OR `end` <= @start )
рд╣рдо рдХреЛрд╖реНрдардХ
рдЦреЛрд▓рддреЗ рд╣реИрдВ (рдзрдиреНрдпрд╡рд╛рдж
рдпрд╛рдЧреНрдЬрд╝ ):
WHERE `start` < @end AND `end` > @start
рд╡рд╛рд╣ рд░реЗ! рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИ!
рдпрд╣ рд╕рдм рдмрд╣реБрдд рд╕реБрдВрджрд░ рд╣реИ, рдФрд░ рдорд╣рд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ... рдЬрдмрдХрд┐ рд╕рдордп рд░реЗрдЦрд╛ рд╕реАрдзреА рд╣реИред
рдмрдВрдж рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдЕрдВрддрд░рд╛рд▓
рд╣рдордиреЗ рд╕рдордп рд░реЗрдЦрд╛ рдкрд░ рдЧрдгрдирд╛ рдХреАред рддреЛ рдПрдХ "рдмрдВрдж" рдирд╛рдо рд╕реНрдерд╛рди рдХреНрдпрд╛ рд╣реИ?
рдпрд╣ рдПрдХ рдРрд╕рд╛ рдирд╛рдорд╕реНрдерд╛рди рд╣реИ, рдЬрдм рдкрд╣рд▓реЗ рдХреНрд░рдо рдХреЗ рдирд╛рдо рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдПрдХ рдирдП рдХреНрд░рдо рдкрд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓реМрдЯрддрд╛ рд╣реИред
рд░реИрдЦрд┐рдХ рдирд╛рдо рд╕реНрдерд╛рди:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 ...
рдмрдВрдж рдирд╛рдо рд╕реНрдерд╛рди:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4 ...
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдо рдХреА рдЕрдиреБрд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ (рдЗрд╕реЗ рдПрдХ рдЪреМрдмреАрд╕ рдШрдВрдЯреЗ рдХреЙрд▓ рд╕реЗрдВрдЯрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП):
* рдорд┐рдирдЯ "00" рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИusrer | рдкреНрд░рд╛рд░рдВрдн | рдЕрдВрдд |
usrer1 | 0 | 6 |
usrer2 | 6 | 12 |
usrer3 | 12 | 18 |
usrer4 | 18 | 23 |
рдореИрдВ 10 рд╕реЗ 19 рддрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреМрди рд╕реЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдпреЛрдЬрдирд╛ рдореЗрдВ рдкрд╣рд▓реЗ рджрд┐рдП рдЧрдП рдЪрдпрди рдХреЛ рдмрдирд╛рддреЗ рд╣реИрдВ:
SET @start:=10; SET @end:=19; SELECT * FROM `table` WHERE NOT ( `start` >= @end OR `end` <= @start )
рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ! рдореБрдЭреЗ рддреАрди рд╢реНрд░рдорд┐рдХреЛрдВ рдХрд╛ рдбреЗрдЯрд╛ рдорд┐рд▓рд╛, рдЬрд┐рдирдХрд╛ рдЕрдВрддрд░рд╛рд▓ рдЦрджрд╛рди рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рд╣реЛрддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдореИрдВ рд░рд╛рдд рдореЗрдВ рдХрд╛рдо рдХрд░реВрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? 20 рд╕реЗ 6 рддрдХ рдХрд╣рддреЗ рд╣реИрдВ? рдпрд╣реА рд╣реИ, рдореЗрд░реЗ рдЕрдВрддрд░рд╛рд▓ рдХреА рд╢реБрд░реБрдЖрдд рдЗрд╕рдХреЗ рдЕрдВрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЗрди рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдПрдХ рдЪрдпрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдХрд╡рд╛рд╕ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдпрд╣реА рд╣реИ, рдПрдХ рджреБрд░реНрдШрдЯрдирд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдореЗрд░рд╛ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ "рд╢реВрдиреНрдп" рджрд┐рди рдХреЗ рдирд┐рд╢рд╛рди рдХреЛ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдЦрд┐рд░рдХрд╛рд░, "рд╢реВрдиреНрдп" рдЪрд┐рд╣реНрди рдХреЛ рдЕрдВрддрд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рджреЛ рджрд┐рди рдкрд╣рд▓реЗ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдерд╛ред
рдПрдХ рдЧрд╝реИрд░-рд░реЗрдЦреАрдп рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдПрдХ рд░реИрдЦрд┐рдХ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдирдореВрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдЪреЗрд╣рд░реЗ рдкрд░ рдереАред
рдореЗрд░реЗ рд╕рд╛рде рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рджрд┐рди рдХреЗ рд╕реНрдерд╛рди рдХреЛ 48 рдШрдВрдЯреЗ рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдирд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ "рд╢реВрдиреНрдп" рдирд┐рд╢рд╛рди рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓рд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рдпрд╛рд╕ рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ - рдХреНрдпреЛрдВрдХрд┐ 1 рдФрд░ 3 рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ 22 рдФрд░ 27 (3) рдХреЗ рдмреАрдЪ рдХреЗ рдирдореВрдиреЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрд╛ред рд╣рд╛рдБ! рдЕрдм, рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЪреМрдмреАрд╕ рдирдВрдмрд░ рд╕рд┐рд╕реНрдЯрдо рдерд╛, рддреЛ рдореИрдВ рдмрд╕ рджреВрд╕рд░реЗ рдХреНрд░рдо рдХреЗ рд╕рдВрдХреЗрдд рдФрд░ рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛ред
рдореИрдВрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред "рд░реИрдЦрд┐рдХ" рд╕рдордп рдкрд░ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдЪреМрд░рд╛рд╣реЗ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдмрд╣реБрдд рдереАред рд▓реЗрдХрд┐рди рдпрд╛ рддреЛ рдЗрд╕ рдкреНрд░рд╢реНрди рдХреА рд╡реНрдпрд╛рдкрдХ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рд╣реБрдИ, рдпрд╛ SQL рдЧреБрд░реБрдУрдВ рдиреЗ "рдЦреБрдж рдХреЗ рд▓рд┐рдП" рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЖрдпреЛрдЬрди рдХрд┐рдпрд╛ - рдПрдХ рдмрдВрдж рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХрд╣реАрдВ рднреА рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдерд╛ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рд▓рд╛рд╣ рдордВрдЪреЛрдВ рдкрд░ рдЧреБрд░реБрдУрдВ рд╕реЗ рдкреВрдЫрддреЗ рд╣реБрдП, рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛: "рд╢реВрдиреНрдп" рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЬрд┐рд╕рд╕реЗ рджреЛ рд░реИрдЦрд┐рдХ рдЕрдВрддрд░рд╛рд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЬрд┐рд╕реЗ рднреА рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред рдпрджрд┐ рд╡реЗ рд╢реВрдиреНрдп рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ)ред рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдХрд╛рдлреА рд╕реНрдерд┐рд░ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдмреЛрдЭрд┐рд▓ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдХрд┐ рд╕рдм рдХреБрдЫ "рдмрд╣реБрдд рд╕рд░рд▓" рдерд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдЫреЛрдбрд╝рд╛ред
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдПрдХ рдиреЛрдЯрдмреБрдХ рдФрд░ рдПрдХ рдкреЗрдВрд╕рд┐рд▓ рд▓реА ... рдореБрдЭреЗ рдЬреЛ рдорд┐рд▓рд╛ рд╡рд╣ рд▓реЗ рдЖрдпрд╛:

рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рджрд┐рди рд╕рдордп рдХреА рдПрдХ рдмрдВрдж рд░реЗрдЦрд╛ рд╣реИ - рдПрдХ рдЪрдХреНрд░ред
рдФрд░ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдЗрд╕ рдЪрдХреНрд░ рдХреЗ рдЪрд╛рдк рдХрд╛ рд╕рд╛рд░ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЧреИрд░-рдЪреМрд░рд╛рд╣реЛрдВ рдХреЛ рдирдХрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдкреЛрд╕реНрдЯ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рджреЗрдЦреЗрдВ), рд╣рдо рдЧреИрд░-рдЕрдВрддрд░-рд╕рдВрдЪрд╛рд▓рди рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:


рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреИрд░-рдЪреМрд░рд╛рд╣реЛрдВ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реИрдЦрд┐рдХ рдпреЛрдЬрдирд╛ рд╣реИред рджреВрд╕рд░реЗ рдореЗрдВ рд╕реЗ рдПрдХ рдЖрд░реНрдХреНрд╕ "рд╢реВрдиреНрдп" рдЪрд┐рд╣реНрди рдХреЛ рджрдмрд╛ рджреЗрддрд╛ рд╣реИред рдПрдХ рддреАрд╕рд░рд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддреБрд░рдВрдд рдПрдХ рдЪреМрд░рд╛рд╣реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЧреИрд░-рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдХреЗ рдмрд┐рдирд╛):

рджреЛрдиреЛрдВ рдЕрдВрддрд░рд╛рд▓ "рд╢реВрдиреНрдп" рдЪрд┐рд╣реНрди рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡реЗ рдкрд░рд┐рднрд╛рд╖рд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рджреЛ рдФрд░ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЕрдВрддрд░рд╛рд▓ (рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рджрд░реНрдЬ рдФрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛) "рдЕрджрд▓рд╛-рдмрджрд▓реА" рд╣реИред
рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕рдВрдпреБрдЧреНрдорд┐рдд рд╣реЛрдирд╛ (рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЕрддреНрдпрдзрд┐рдХ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреНрд░рд╣рд╛рд░ рдХреА рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдореИрдВ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛:
SET @start:= X ; SET @end:= Y; SELECT * FROM `lparty_ads` WHERE ((`prime_start` < `prime_end` AND @start < @end) AND NOT (`prime_end`<= @start OR @end <=`prime_start` ) OR (( (`prime_start` < `prime_end` AND @start > @end) OR (`prime_start` > `prime_end` AND @start < @end)) AND NOT ( `prime_end` <= @start AND @end <= `prime_start` )) OR (`prime_start` > `prime_end` AND @start > @end))
рдФрд░
kirillzorin рд╕реЗ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг:
set @start := X; set @end := Y; select * from tab where greatest(start, @start) <= least(end, @end) or ((end > @start or @end > start) and sign(start - end) <> sign(@start - @end)) or (end < start and @end < @start);
рдЕрдиреБрд░реЛрдз рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд╛рд▓реВ рд╣реИ рдФрд░, рд╕рдмрд╕реЗ рдордЬрд╝реЗрджрд╛рд░ рд╣реИ, рдХрд┐рд╕реА рднреА рдмрдВрдж рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рд╕рдЪ рд╣реИ - рдпрд╣ рдШрдВрдЯреЗ, рджрд┐рди, рд╕рдкреНрддрд╛рд╣, рдорд╣реАрдиреЗ, рд╡рд░реНрд╖ рд╣реЛред рдФрд░ рдлрд┐рд░ рднреА, рдпрд╣ рд╡рд┐рдзрд┐ "рдмреИрд╕рд╛рдЦреА" рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд╖реЗрддреНрд░ред
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рдХреЗ рдорджреНрджреЗрдирдЬрд░ рдХрд┐ рдореБрдЭреЗ рдЦреБрдж рдЗрд╕ рддрд░рд╣ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдорд┐рд▓реА рдЬрдм рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдХрд╡рд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд╕реЗ рдореЗрд░реА рдХрд╣рд╛рдиреА рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред