вот мой вопрос:Mysql вставить массив из другой таблицы и заполнить остальные значения по умолчанию
У меня есть таблица TRUST(id INT, trustlevel INT)
которая содержит записи (1, 5) и (2, 3). У меня также есть массив, содержащий идентификаторы (1, 2, 3, 4, 5).
Что я хочу достичь, так это вставить все идентификаторы из массива во временную таблицу с именем PRESELECTED(id INT, trustlevel INT DEFAULT 10)
таким образом, чтобы идентификаторы с доверительными уровнями, которые в TRUST должны быть скопированы, а остальная часть массива принимает значение по умолчанию значение которого в этом случае равно 10. Поэтому в конце PRESELECTED будут записаны записи (1, 5), (2, 3), (3, 10), (4, 10), (5, 10).
Я понял, как поместить значения из таблицы TRUST, но я застрял с остальными:
CREATE TEMPORARY TABLE PRESELECTED (id INT, trustlevel INT DEFAULT 10);
INSERT INTO PRESELECTED (
SELECT * FROM TRUST WHERE id IN (1, 2, 3, 4, 5)
)
Проблема с этим состоит в том, что она вставляет только 1 и 2, так как 3, 4 и 5 не находятся в TRUST
Любые быстрые предложения?
Я думал о том, чтобы сделать то же самое, но с вставкой массива по умолчанию, а затем перезаписав значения, в которых будет соответствовать ключ. – laidback
Спасибо, здорово, что есть способ игнорировать уже вставленные значения, это очень помогает! – ziGi
@laidback ваш метод медленнее, если есть больше записей. – ziGi