SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Mysql INSERT - Ignore Duplicate VALUES

BullBlogger

С рогите напред
абе дали някой е открил топлата вода:

имам проста таблица от две колони. При вкарване на нови данни има ли някакъв начин да избегна дублираните СТОЙНОСТИ. Не ключове, стойности. Не искам да зареждам таблицата в масив и да търся всяка стойност една по една преди да я вкарам в базата, защото таблицата може да е проста ама е огромна и с тенденция да расте постоянно.

С думи прости опитвам се да го вкарам директно с куери с проверка за дублирана стойност.

Всякакви идеи са добре дошли. Благодаря предварително!
 
За: Mysql INSERT - Ignore Duplicate VALUES

За: Mysql INSERT - Ignore Duplicate VALUES

Не съм го пробвал до сега, но не може ли просто да направиш полето от таблицата да е от вид UNIQUE. Така няма да позволява вкарването на еднакви стойности и ще дава грешка.
 
Re: Mysql INSERT - Ignore Duplicate VALUES

Варианти:
1) Има си statement за целта - INSERT IGNORE.
2) както scoobydoo написа, задаваш полето като UNIQUE и ще гърми когато опитваш да вкараш вече съществуваща стойност. За да не изкарва грешка, извикваш @mysql_query
3) има и вариант с IF NOT EXISTS и вграден SELECT, ама е ненужно усложнен
 
За: Mysql INSERT - Ignore Duplicate VALUES

За: Mysql INSERT - Ignore Duplicate VALUES

В допълнение може да направиш UNIQUE на повече от една колона. Така ако вкарваш ред със същата двойка данни няма да го вкара. Сега проверката как ще си я направиш е твоя работа, но поне няма да влиза записа. @Kompota ти е дал инфо как да го провряваш но един елементарен SQL oт типа:

Код:
SELECT COUNT(*) AS cnt FROM table1 WHERE col1='$value1' AND col2='$value2'
ако има подобна двойка резултата ще е 1 ако няма ще е 0
 
Re: Mysql INSERT - Ignore Duplicate VALUES

Благодаря за отговорите - репичка на двамата

You must spread some Reputation around before giving it to Kompota again.
 

Горе