CREATE TABLE limit_id_table (
max_id int unsigned not null
) ENGINE=innodb;
INSERT INTO limit_id_table values (0);
UPDATE limit_id_table set max_id = @max_id := max_id + 100;
BEGIN;
SELECT * FROM table where id BETWEEN @max_id - 99 AND @max_id FOR UPDATE;
.....
COMMIT;
SELECT * FROM ((
SELECT id, user_id_posted, user_id as uid, type, `date`, content
FROM "post"
WHERE user_id = IN ( $array1 ) AND user_id_posted = user_id
LIMIT 20
) UNION (
SELECT id, user_id_posted, group_id as uid, type, `date`, content
FROM "userpost"
WHERE group_id = IN ( $array2 )
LIMIT 20
))
ORDER BY `date`
LIMIT 20
select
user_id, count(*) as count, group_concat(product_id) as products
from wishlist
group by user_id;
delimiter $$
CREATE FUNCTION GetDistanceBetweenGeoLocations
(
lat1 float,
long1 float,
lat2 float,
long2 float
)
RETURNS float
DETERMINISTIC
BEGIN
DECLARE distance float;
DECLARE earth_radius float;
DECLARE axis float;
SET earth_radius = 6371.009;
SET axis = (SIN(RADIANS(lat2-lat1)/2) * SIN(RADIANS(lat2-lat1)/2) +
COS(RADIANS(lat1)) * COS(RADIANS(lat2)) *
SIN(RADIANS(long2-long1)/2) * SIN(RADIANS(long2-long1)/2));
SET distance = earth_radius * (2 * ATN2(SQRT(axis), SQRT(1-axis)));
RETURN ROUND(distance, 3);
END;
$$
select * from points
where GetDistanceBetweenGeoLocations(n, 55.75272901, e, 37.60548887) <= 0.1
SELECT ID_раздела
FROM Разделы
WHERE ID_родительского_раздела IN
(SELECT ID_раздела FROM Разделы WHERE ID_родительского_раздела=226)
OR
ID_родительского_раздела=226