Как задать условие Mysql?

185
16 сентября 2018, 09:00

Мне нужно чтобы при создании новой строки в таблице users,проверялось условие: Если у нового пользователя в столбце 'ref_use' есть какая-то цифра(id участника,который пригласил этого нового пользователя),то проверялся весь список пользователей и тому пользователю,id которого равен этому 'ref_use' в столбец 'referals' прибавлялась единица(т.е. счетчик).И у скольких человек в таблице в столбце 'ref_use',стоит id этого человека,такое число было написано в столбце referals

    CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(256) NOT NULL,
  `avatar` varchar(256) NOT NULL,
  `money` int(255) NOT NULL,
  `ref_percent` int(255) NOT NULL DEFAULT '15',
  `referals` int(11) DEFAULT NULL,
  `zarabotok` int(11) DEFAULT NULL,
  `login` varchar(256) NOT NULL,
  `login2` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `is_admin` int(11) NOT NULL,
  `is_yt` int(11) NOT NULL,
  `ref_use` int(11) DEFAULT NULL,
  `profit` int(11) NOT NULL,
  `opened` int(11) NOT NULL,
  `ref_link` varchar(256) DEFAULT 'none',
  `deposit` int(11) NOT NULL,
  `bonus_money` int(11) NOT NULL,
  `remember_token` varchar(100) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT '2016-11-08 21:32:40',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
Answer 1

Используйте триггер. Как вариант, можете использовать этот (работоспособность не проверял, под рукой нет БД):

CREATE TRIGGER testref BEFORE INSERT ON users
  FOR EACH ROW
  BEGIN
   if ref_use is not null
   then UPDATE users SET referals = referals + 1 WHERE id = new.ref_use;
  end if; 
  END;
READ ALSO
проблема с подсчетом

проблема с подсчетом

Должно показывать 0 сообщений, а показывает 6, хотя у всех сообщений флаг read = 1, тоесть они прочтеныВ чем беда?)

187
как склеить 2 столбца в таблице в 1 mysql

как склеить 2 столбца в таблице в 1 mysql

Имеется Таблица My_TABLE, поля street(LONGTEXT),house(LONGTEXT), пытаюсь в этой ж таблице создать столбец address на основе 2х вышеперечисленныхНо не выходит

157
Ruby on rails Проблема с установкой гема mysql2

Ruby on rails Проблема с установкой гема mysql2

Выдает вот такую ошибку :

175