SQL INSERT или ОБНОВЛЕНИЕ - PullRequest
       5

SQL INSERT или ОБНОВЛЕНИЕ

1 голос
/ 05 августа 2010

Исходя из этого: SQL INSERT из SELECT и правильный ответ, отмеченный там.

Мне нужно будет также иметь возможность проверить, существует ли уже строка, также с помощьюимя пользователя.Так я бы удалил и потом вставил или есть лучший способ?И если это удалить, как мне сказать УДАЛИТЬ ИЗ таблицы, ГДЕ UserID = выбрать имя пользователя здесь Спасибо

Ответы [ 3 ]

2 голосов
/ 05 августа 2010

Если удалить, вы можете использовать:

DELETE a FROM Avatar a LEFT JOIN User u ON a.UserID=u.UserID WHERE u.UserName='theusername'
0 голосов
/ 05 августа 2010

Исходя из другого вопроса, где вы делаете «вставка из выбора», я предполагаю, что вы не хотите вставлять строку, в которой уже есть записи для ключей, которые вы пытаетесь вставить. Я также предполагаю, что это дает вам какую-то ошибку типа «найден дубликат ключа».

Исходя из моих предположений, исправить это просто: добавьте ключевое слово IGNORE после INSERT, чтобы ваш запрос выглядел примерно так:

INSERT IGNORE... //rest of query
0 голосов
/ 05 августа 2010

Попробуйте REPLACE INTO вместо INSERT INTO. Если идентификатор пользователя указан и является первичным ключом таблицы, он перезапишет строку, идентификатор пользователя которой совпадает с тем, что вы вставили.

Чтобы ответить на ваш подвопрос, это будет DELETE FROM table WHERE UserID IN (SELECT UserID ...)

Примечание: StackOverflow действительно не подходит для изучения базового SQL. Если вы прочитаете сначала , ваши вопросы будут лучше, а ответы соответственно более полезными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...