Вставьте оператор, используя переменную в запросе SQL - PullRequest
2 голосов
/ 28 июня 2019

Я использую mysql (5.7.14).У меня есть пользовательская таблица и экспериментальная таблица.

Для пользовательской таблицы есть столбцы:

user_id | user_name| email

Для экспериментальной таблицы есть столбец:

user_id | experiment_id | created_at

Мне нужно:

  • получает 10% от случайного пользователя, поэтому у меня есть что-то вроде этого:
SELECT user_id from user where rand() <= 0.1
  • вставьте пользователя из вышеперечисленного в таблицу эксперимента, с Experiment_id = 1

Поэтому мне интересно, есть ли способ определить переменную, такую ​​как:

user_ids = SELECT user_id from user where rand() <= 0.1

И затем использовать ее в моем операторе вставки:

INSERT INTO experiment VALUES (user_ids, '1', DEFAULT);

1 Ответ

2 голосов
/ 28 июня 2019

Вы можете использовать оператор вставки-выбора:

INSERT INTO experiment
SELECT      user_id, '1', DEFAULT
FROM        user
WHERE       RAND() <= 0.1
...