В данный момент вы не указываете правильную строку для получения значений.Попробуйте что-то вроде этого:
UPDATE MyContacts SET contact = name||'--'||email;
РЕДАКТИРОВАТЬ: Рад, что это сработало.Ваша первая проблема заключалась в том, что ваш подвыбор использует оператор SELECT без предложения WHERE (SELECT name||'--'||email FROM MyContacts
вернет 3 строки).Одним из возможных решений было бы для SQLite выдать ошибку и сказать Вы пытались установить столбец в результате выражения, которое возвращает более 1 строки : я видел это с MySQL и SQL Server,Однако в этом случае SQLite использует только первое возвращенное значение.Однако затем появляется вторая ошибка: поскольку вы не сужаете свой оператор UPDATE с помощью предложения WHERE, он использует это первое значение, возвращаемое для обновления КАЖДОЙ отдельной строки, что вы и видите.