2010-08-05 2 views
1

После этого: SQL INSERT from SELECT и правильный ответ отмечен там.SQL INSERT или UPDATE

Мне нужно будет также проверить, существует ли строка, также используя имя пользователя. Так я бы удалить, а затем вставить или есть лучший способ? И если это удалить, как я говорю, удалить из таблицы WHERE UserID = сделать имя пользователя выбрать здесь Благодарности

ответ

2

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

DELETE a FROM Avatar a LEFT JOIN User u ON a.UserID=u.UserID WHERE u.UserName='theusername' 
0

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

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

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

0

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

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

INSERT IGNORE... //rest of query 
Смежные вопросы