Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2011, 12:18   #1
RamireZ
Студент
Пользователь
 
Аватар для RamireZ
 
Регистрация: 30.05.2008
Сообщений: 61
Лампочка операция LIKE в SQL ADO и регистр букв

здравствуйте.
Нужно реализовать поиск по заданным символам в строке. Пока есть что то типа такого:
SELECT * FROM TABLE WHERE mod LIKE %Ssrtring%.
если считать,что mod может иметь вид 'T,V,touch,7v' или например 'T,touch,7v', а строка Ssrtring может иметь вид 'V',то в результате мне выдаются оба результата, хотя нужен был только первый,в котором параметр(искомая подстрока) 'V' имеется. Т.е. символ 'V' во втором примере получается равен символу 'v' в '7v'. Мне же нужно чтобы при поиске большой буквы мне находились строки которые содержат символ 'V' а не маленькие. Надеюсь более менее понятно объяснил,если что непонятно прошу отписать, задачу очень важно решить. Всем спасибо за внимание.жду ответов.
RamireZ вне форума Ответить с цитированием
Старый 07.07.2011, 12:33   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В данном случае в Ssrtring может быть 'V,'. А в целом с подобного рода поиском по таким данным заморочитесь. Если возможно, то систематизировать данные и разбить их на несколько полей
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.07.2011, 16:24   #3
RamireZ
Студент
Пользователь
 
Аватар для RamireZ
 
Регистрация: 30.05.2008
Сообщений: 61
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В данном случае в Ssrtring может быть 'V,'. А в целом с подобного рода поиском по таким данным заморочитесь. Если возможно, то систематизировать данные и разбить их на несколько полей
понятно, но неужели нет какой то другой возможности? перегружать базу полями ради тольком одной этой функции не особо охото...
RamireZ вне форума Ответить с цитированием
Старый 07.07.2011, 16:32   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) какая субд?

2) а Вам нужно найти ВХОЖДЕНИЕ подстроки в поле mod

т.е. если в поле mod будет ASTALAVISTA
и строка для поиска V
должна найтись строка?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.07.2011, 17:35   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Для некоторого облегчения жизни храните данные в виде
',T,V,touch,7v,' используя запятую как разделитель, а также в начале и конце. И поиск как LIKE '%,V,%' или LIKE '%,T,%'
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 07.07.2011 в 17:37.
Аватар вне форума Ответить с цитированием
Старый 09.07.2011, 08:14   #6
RamireZ
Студент
Пользователь
 
Аватар для RamireZ
 
Регистрация: 30.05.2008
Сообщений: 61
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Для некоторого облегчения жизни храните данные в виде
',T,V,touch,7v,' используя запятую как разделитель, а также в начале и конце. И поиск как LIKE '%,V,%' или LIKE '%,T,%'
да,можно так попробовать как вариант. Получается сделать LIKE регистрозависимым сделать нет возможности?
RamireZ вне форума Ответить с цитированием
Старый 09.07.2011, 10:52   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Это зависит от СУБД и её настроек. От дельфей никак
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.08.2011, 15:30   #8
RamireZ
Студент
Пользователь
 
Аватар для RamireZ
 
Регистрация: 30.05.2008
Сообщений: 61
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В данном случае в Ssrtring может быть 'V,'. А в целом с подобного рода поиском по таким данным заморочитесь. Если возможно, то систематизировать данные и разбить их на несколько полей
А если действительно разбить данные на несколько полей с , получается, булевыми значениями, т.е.
V=>true
T=>false
touch=>false
7v=>true
как мне объединить все эти данные, чтобы при выводе они снова преобразовались в одну единую строку, т.е. в вид 'V,7v' ?
RamireZ вне форума Ответить с цитированием
Старый 01.08.2011, 15:33   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В DatSet-ах есть понятие калькулируемое поле. Там можно любой огород городить из полей строки, единственно - это поле не корректируемое в визуальных объектах
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
регистр букв в Edit a_n_n_a Общие вопросы Delphi 22 13.08.2012 11:31
Заменить в группе ячеек с текстом регистр букв Wespe Microsoft Office Excel 2 21.06.2010 09:01
Привязка к файлам, Перезагрузка и обновление формы, Регистр букв, Шифровка данных Лукманов Александр Общие вопросы Delphi 2 24.12.2008 15:17
Регистр для русских букв Kulibim Общие вопросы Delphi 2 28.10.2007 17:36