Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: REGEXP-сравнение чисел с диапазоном значений в запросе mysql
CREATETRIGGER`preparedate` BEFORE INSERTON`splits`
FOR EACH ROW BEGIN
SET new.FROM=LEFT(new.`orig`,instr(new.`orig`,'-')-1);
SET new.TO=RIGHT(new.`orig`,instr(new.`orig`,'-')-1);
END
//
DELIMITER ;
Если надо, допишите аналогичный на before update
----- PostgreSQL DBA
prgrant
Отправлено: 06 Декабря, 2013 - 12:21:54
Новичок
Покинул форум
Сообщений всего: 12
Дата рег-ции: Янв. 2013
Помог: 0 раз(а)
Мелкий пишет:
Разделить диапазон на 2 int'а.
Вот бы решение с костылями найти, без разделения на 2 поля...
Мелкий
Отправлено: 06 Декабря, 2013 - 12:32:50
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Если забить на любую производительность и приглядеться повнимательнее к моему триггеру - там есть разделение интервала на части силами SQL. Вполне пригодно к использованию в where.
----- PostgreSQL DBA
Deonis
Отправлено: 06 Декабря, 2013 - 13:11:33
Посетитель
Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009
Помог: 14 раз(а)
Мелкий, предположу, что правую часть диапозона (для конкретного случая), надо все-таки получать не функцией RIGHT, а с помощью, например, SUBSTRING. Т.е. в итоге, получим следующую картину.
Хотя, я может чего-то недосмотрел и могу ошибаться.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.