Проверьте содержимое поля перед использованием Concat в MySQL Update Statement - PullRequest
2 голосов
/ 19 декабря 2011

Я обновляю поля в базе данных, используя Concat следующим образом

`fieldName`=concat( `FieldName`, ',NEW DATA')

В некоторых случаях я пытаюсь создать в поле список через запятую, например

item 1, item 2, item 3

Но если я не знаю, пусто ли поле перед рукой, если это первая запись в поле, я не могу избежать предшествующей или запятой.

,item 1, item 2...etc 

или

item 1, item 2, ... etc

Есть ли способ определить, есть ли у поля содержимое, прежде чем я добавлю данные, в операторе Update, чтобы избежать запроса к базе данных отдельно?

... или лучший способ составить список через запятую!

1 Ответ

1 голос
/ 19 декабря 2011

Да, используйте выражение case, например:

update tableName
set columnName = 
  case when LENGTH(columnName) > 1
    then select concat(columnName, ',NEW DATA')
    else select 'NEW DATA' end

Если длина столбцаName больше 1, в columName есть данные, поэтому вы можете поставить запятую, в противном случае вы толькопоставить новые данные.

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