Добавление в таблицу только тех данных, которых в ней еще нет

Asar

Новичок
Добавление в таблицу только тех данных, которых в ней еще нет

Т. е. ситуация такова - в таблице 2 поля для того, чтобы в них добавлять инфу из окошек текстовых, юзером заполняемых. Других полей нет.

Допустим, человек вводит в поле1 значение 55, а в поле2 значение 58. Если в таблице до сих пор нет строки, где значение первого поля было бы 55 при значении второго 58 - нужно такое добавить. А если есть - не нужно.

Другими словами, как это можно наиболее рационально проверить? Неужели придется делать отдельный запрос типа "селект", чтоб это выяснить? Или есть более продвинутые способы?
 

Silencer_SPB

Новичок
Если я правильно понял суть вопроса - можно сделать оба поля индексом, и использовать INSERT IGNORE
Оно само разберется :)
 

Asar

Новичок
Сорри, не совсем верно сформулировал задачу...

Берем значение из первого поля. Если таковое уже присутствует в таблице - обновляем эту таблицу - запихиваем значение из второго поля во второй столбец таблицы. Если значения из первого поля еще нет - добавляем в таблицу значение первого поля и соответствующее ему значение второго... Можно ли такое сделать без селекта или селект есть наиболее рац. путь

-~{}~ 25.02.05 16:13:

Сейчас сделал так:
оба поля index unique.
сначала тупо апдейтаю все подряд (без проверки - если такового записи еще нет, то ничего не изменится просто), потом тупо вставляю новые (если уже есть, то из-за index unique опять же ничего не меняется).
Вроде как все нормально работает. Но, быть может, это не самый грамотный путь?
 

Сергей123

Новичок
не вижу, чем 2 описание отличается от 1

тебе дали 2 варианта
- составной unique индекс на оба поля и insert ignore
- индекс на одно поле и replace
 
Сверху