2010-02-12 4 views
0

У меня есть предопределенная комбинация предметов (например, brand1 | brand2 | brand3 и т. Д.) В таблице. Мне нравится собирать бренды и проверять их с помощью предопределенных данных таблицы. Например, я собрал brand1 | brand2 | brand3, тогда я могу получить форму значения, которая предопределила таблицу (она соответствует условию). Как я могу проверить? бренды будут неограниченными. тоже бренд1 | бренд2 | бренд3 бренда1 | бренд2 | существует, тогда возвращает true.Сложное состояние

+0

Не могли бы вы объяснить немного больше с помощью различных примеров? Я не могу понять, что вы пытаетесь задать – Jimmy

+0

* sniff * - yep, домашняя работа – IAbstract

ответ

0

Хорошо, принимая дикое предположение о том, что вы просите, у вас есть поле с разделителями с брендами в них, разделенное | персонаж. Вы хотите вернуть любую строку, которая имеет правильную комбинацию брендов, но не хотите возвращать строки, например, в них «давать показания», когда вы ищете «тест».

У вас есть четыре условия поиска (поиск brand3):

  1. бренд существует само по себе: "brand3"
  2. бренд начинает разделителями поле: "brand3 | brand4 | brand6"
  3. бренд находится в середине поля: "brand1 | brand3 | brand6"
  4. бренд в конце поля: "brand1 | brand2 | brand3"

so, in SQL:

SELECT * 
FROM MyTable 
WHERE BrandField = 'brand3' 
    OR BrandField LIKE 'brand3|%' 
    OR BrandField LIKE '%|brand3|%' 
    OR BrandField LIKE '%|brand3' 

Повторите, как требуется для нескольких марок.

+0

Спасибо Крис, я разрабатываю мобильное решение для заказа. И моя цель - предоставить клиентам скидки на счета. Каждый товар принадлежит любому бренду. Правило скидок для счета будет определено в таблице дисконтных счетов. Например, пользователь по бренду 1 | бренд2 и минимальная сумма - 10000, затем получает 1-процентную скидку. Комбинация брендов должна составлять до 20. Мне просто нравится проверять собранные пользователем элементы против правила скидок на счета. заранее спасибо – Chinggis