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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск записей в таблице с помощью Like, Поиск если записи в поле вида 2,4,6,69 
:(
    Опции темы
AlexanderI
Дата 30.8.2010, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.7.2004

Репутация: нет
Всего: 3



Здравствуйте.
Помогите созтавить запрос, который выводил бы найденный совпадения

Например есть запись в таблице:

id | name | tip
1 | саша | 1,2,3,4,5,53,66
2 | маша| 1,7,11
3 | даша| 1,3,33,40

Нужно найти записи где в поле tip есть значение 1 . Но не 11. Или где есть значение 3. 

Запрос tip LIKE '%1%' не прокатывает так как подцепает ещё и число 11
--------------------
Магазин детских игрушек  | Авто ВАЗ
PM MAIL   Вверх
azesmcar
Дата 30.8.2010, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



ищи не 1% а 1,% а в поле всегда в конце добавляй запятую - т.е. 1,3,33,40,

а вообще так данные не хранят, заведи отдельную таблицу.
PM   Вверх
AlexanderI
Дата 30.8.2010, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.7.2004

Репутация: нет
Всего: 3



Цитата(azesmcar @ 30.8.2010,  11:12)
ищи не 1% а 1,% а в поле всегда в конце добавляй запятую - т.е. 1,3,33,40,

а вообще так данные не хранят, заведи отдельную таблицу.

запятую в конце поля хранить не могу.
А можно както при запросе дописывать в это поле запятую и уже потом искать ?
--------------------
Магазин детских игрушек  | Авто ВАЗ
PM MAIL   Вверх
azesmcar
Дата 30.8.2010, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата(AlexanderI @  30.8.2010,  11:14 Найти цитируемый пост)
А можно както при запросе дописывать в это поле запятую и уже потом искать ? 

можно
Код

... where concat(tip, ',') like '1,%'

но повторюсь, я всеми конечностями против этого smile 

Цитата(azesmcar @  30.8.2010,  11:12 Найти цитируемый пост)
заведи отдельную таблицу

это нарушение правил нормализации, в свое время, когда мне пришлось работать с таблицей такого рода я долго матерился.
PM   Вверх
Akina
Дата 30.8.2010, 11:28 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Код

where concat(',', tip, ',') like '%,1,%'




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Данкинг
Дата 30.8.2010, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 0
Всего: 130



Цитата(azesmcar @  30.8.2010,  12:12 Найти цитируемый пост)
ищи не 1% а 1,% 

И что: "11," так же найдётся. smile 
Цитата(AlexanderI @  30.8.2010,  12:14 Найти цитируемый пост)
А можно както при запросе дописывать в это поле запятую и уже потом искать ? 

Можно сделать так, как советует azesmcar. Заведи вторую таблицу структуры вроде такой:
id | tip
1 2
1 3
1 4
1 5
1 53
1 66

Добавлено через 2 минуты и 4 секунды
Цитата(Akina @  30.8.2010,  12:28 Найти цитируемый пост)
Код

where concat(',', tip, ',') like '%,1,%'

А, ну да. Вот до такого варианта я почти дошёл, но решил пока не писать. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
azesmcar
Дата 30.8.2010, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата(Данкинг @  30.8.2010,  11:31 Найти цитируемый пост)
И что: "11," так же найдётся. smile 

я написал для поиска 1% а не %1%..конечно же имелся ввиду вариант Akina для полного поиска, мне показалось ТС нужен поиск 1%.

в любом случае это очень плохое решение, но иногда таблица бывает чужая и с этим приходиться мирится. smile 
PM   Вверх
AlexanderI
Дата 30.8.2010, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.7.2004

Репутация: нет
Всего: 3



Понимаете, чтобы переделать таблицу потребуется месяц, а то и больше. Таблицу делал не я, я тоже против такого.
--------------------
Магазин детских игрушек  | Авто ВАЗ
PM MAIL   Вверх
azesmcar
Дата 30.8.2010, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата(AlexanderI @  30.8.2010,  12:02 Найти цитируемый пост)
Понимаете, чтобы переделать таблицу потребуется месяц, а то и больше. Таблицу делал не я, я тоже против такого. 

надо просто не забыть взвесить время, которое понадобиться, чтобы придумывать костыли для работы с такой таблицей.
PM   Вверх
igorold
Дата 30.8.2010, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 5
Всего: 17



может тогда написать так: 

Код

like '%,1,%' or like '1,%' or like '%,1'




Это сообщение отредактировал(а) igorold - 30.8.2010, 15:14


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Akina
Дата 30.8.2010, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



igorold, напиши, соблюдая синтаксис - сразу поймёшь цену этой идеи.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Данкинг
Дата 30.8.2010, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 0
Всего: 130



Цитата(AlexanderI @  30.8.2010,  13:02 Найти цитируемый пост)
Понимаете, чтобы переделать таблицу потребуется месяц

Наверное, не таблицу, а программу, которая с ней работает? Переделать таблицу-то  - проблема невелика.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akina
Дата 30.8.2010, 20:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Ну поначалу программу можно не переделывать. Можно отнормалить таблицу, а на её основе создать вьюху, которая на первых порах обеспечит работу на этой [censored] структуре. И спокойно переводить готовый код на работу с нормализованной таблицей.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0586 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.