- 1
- 2
- 3
- 4
- 5
BEGIN
DECLARE CloneID INTEGER DEFAULT 0;
SET CloneID = (SELECT `id` FROM `users` WHERE (`level` >= ulvl) and (`level`<= ulvl + 2) and (`id`<>uid) ORDER BY RAND() LIMIT 0,1);
RETURN IFNULL(CloneID,0);
END
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−50
BEGIN
DECLARE CloneID INTEGER DEFAULT 0;
SET CloneID = (SELECT `id` FROM `users` WHERE (`level` >= ulvl) and (`level`<= ulvl + 2) and (`id`<>uid) ORDER BY RAND() LIMIT 0,1);
RETURN IFNULL(CloneID,0);
END
Получения рандомного идентификатора по двум условиям, жесть то какая. Но лучше я пока не придумал.
Rijen 27.01.2016 08:33 # 0
where level BETWEEN ulvl and ulvl+2
and id <> uid...
Ну и, небольшая придирочка, вы либо экранируйте имена, либо нет, либо экранируйте только системные.