2014-01-29 2 views
0

У меня есть таблицаВыборочного обновления MySQL

ID Skills 
1 Python | Perl | 
2 C# | Python | 
3 Java | C++ | Perl | 

Запрос должен добавить навык под навыками, если навык не существует, но не добавить его, если он делает. Например,

Update t1 set Skills = Concat(Skills,'Python | ') where ID = '1' 

не следует добавлять питона существующих навыков, как она уже существует.

но

Update t1 set Skills = Concat(Skills,'Python | ') where ID = '3' 

следует обновить 3

ID Skills 

3 Java | C++ | Perl | Python | 

Я могу Concat, но не условная CONCAT

Благодаря

+0

Зачем использовать реляционную базу данных, а затем сделать это с ней? Следите за нормализацией вместо списков помех в поля. –

+0

@DigitalChris Я согласен с вами, но список импортируется из файла csv непосредственно в базу данных. – Ank

+1

Вы говорите это, но тут вы пытаетесь обновить записи. Зверь, которого вы создали, уже кусает вас. Правильная вещь - прочитать данные CSV и импортировать реляционно. –

ответ

1

Вы можете попробовать not like на skills поле.

Update t1 
    set Skills = Concat(Skills,'Python | ') 
where Skills not like '%Python |%' 
Смежные вопросы