#sql #string #contains #string-concatenation
#sql #строка #содержит #конкатенация строк
Вопрос:
Я ищу способ отфильтровать все «уже принятые» слова внутри списка, причем взятые слова взяты из другого списка.
Например:
dog,cat,fish
wolf,elephant
the list:
dog, cat, fish, wolf, elephant, tiger, bird.
Теперь я хочу выбрать только «tiger» и «bird».
Обратите внимание: Dog, cat,fish объединены и представляют собой 1 строку внутри 1 столбца строки.
Комментарии:
1. Если бы ваши данные были нормализованы, это было бы простой задачей…
2. К сожалению, я не знаю, что это значит, если бы у вас был пример, я мог бы попытаться изменить свою таблицу?
3. Хранение списка значений, разделенных запятыми, в столбце в реляционной базе данных почти всегда является признаком плохого дизайна базы данных. Приведение такой таблицы к первой нормальной форме значительно упростит работу с таблицей.
Ответ №1:
измените таблицу так, чтобы в ней содержался только один элемент в заданной строке: например
animal
------------
id
name
затем заполните значения следующим образом:
1, 'Fish'
2, 'Bird'
3, 'Dog'
и т.д.
тогда вам нужно представление о «списке», может быть, так:
my_list
----------
list_id
animal_id
Комментарии:
1. Я понимаю это, но, к сожалению, моя задача на самом деле не позволяет этого. Нам нужно случайное количество ингредиентов для каждого рецепта, каждый ингредиент должен быть в одном столбце / строке, потому что я не знаю, как заполнить случайное количество столбцов в строке для каждого рецепта.
2. Я добавил картинку, чтобы показать, как выглядит текущая таблица, если у вас есть идея получше вытащить случайное количество строк из столбца внутри другой таблицы и вставить их в эту таблицу для дальнейшего редактирования