Есть ли способ взорвать значение ячейки в операторе mysql - PullRequest
2 голосов
/ 03 декабря 2010

У меня есть столбец в таблице, где я храню идентификаторы тегов как 1 | 5 | 10

Я хочу взорвать столбец с помощью запроса MySQL

Ответы [ 2 ]

5 голосов
/ 03 декабря 2010

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

Это называется нормализация .

2 голосов
/ 10 февраля 2011

Вы можете связать SUBSTRING_INDEX для достижения эффекта разнесения, но позвольте мне напомнить вам, что это ужасное решение по нормализации базы данных, как предлагает Кос.

Если вы пытались выбрать все записи MySQL с 5в вашем среднем столбце (# | 5 | #) вы будете использовать этот запрос:

SELECT * FROM table WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(table.field, '|', 2), '|', -1) = 5

@ Все: это ужасное решение, поэтому, пожалуйста, НЕ ПЛАНИТЕ его использовать;однако иногда мы сталкиваемся с ситуацией, когда необходимо использовать такой быстрый лайнер, пока не произойдет более тщательный осмотр схемы базы данных.

...