База данных Mysql

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

whs писал(а):Есть мысль что нужно использовать LIKE я правильно мыслью?

Можно сделать, например, так:

Код: Выделить всё

SELECT Состав FROM Таблица WHERE INSTR(Состав, 'Медь')>0

А можно и так:

Код: Выделить всё

SELECT Состав FROM Таблица WHERE Состав LIKE '%Медь%'
Аватара пользователя
AbakAngelSoft
постоялец
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар
Контактная информация:

Сообщение AbakAngelSoft »

whs писал(а):есть некое поле называется оно Состав в этом поле перечислены через запятую компоненты Медь Цинк Олово

Если вам нужен нормальный поиск то никогда так не делайте!
Нужно вынести элементы состава в отдельную таблицу и связать с основной через промежуточную таблицу ("многие ко многим"). Тогда поиск строк идеющих в составе определенный элемент станет тривиальной задачей.
Аватара пользователя
whs
новенький
Сообщения: 28
Зарегистрирован: 03.04.2010 18:07:44

Сообщение whs »

AbakAngelSoft писал(а):Если вам нужен нормальный поиск то никогда так не делайте!
Нужно вынести элементы состава в отдельную таблицу и связать с основной через промежуточную таблицу ("многие ко многим"). Тогда поиск строк идеющих в составе определенный элемент станет тривиальной задачей.


Чем грозит мне выше приведенный способ? чем он хуже и почему ваш вариант лучше? Что делать если у меня будет 80000 элементов?
Ответить