Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.09.2012, 13:00
huminclouds huminclouds вне форума
Прохожий
 
Регистрация: 19.09.2012
Сообщения: 10
Репутация: 10
По умолчанию PostgreSQL. Выборка

Необходимо сделать выборку по полю на предмет содержания символа "\".
Запрос
Код:
SELECT * FROM table1
WHERE field1 like '%\%';
не дает результата.

Также необходимо сделать выборку строк, в которых первый символ не является цифрой.
Ответить с цитированием
  #2  
Старый 25.09.2012, 13:02
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от huminclouds
Необходимо сделать выборку по полю на предмет содержания символа "\".
Запрос
Код:
SELECT * FROM table1
WHERE field1 like '%\%';
не дает результата.
А так?:
Код:
WHERE field1 like '%[\]%';
или так?:
Код:
WHERE field1 like '%\\%';

Последний раз редактировалось poli-smen, 25.09.2012 в 13:14.
Ответить с цитированием
  #3  
Старый 25.09.2012, 15:11
huminclouds huminclouds вне форума
Прохожий
 
Регистрация: 19.09.2012
Сообщения: 10
Репутация: 10
По умолчанию

И так и эдак уже пробовал. Не работает.
Ответить с цитированием
  #4  
Старый 25.09.2012, 16:32
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от huminclouds
И так и эдак уже пробовал. Не работает.
В запросах PostgreSQL можно использовать регулярные выражения. Подробности в справке
Ответить с цитированием
  #5  
Старый 25.09.2012, 17:35
huminclouds huminclouds вне форума
Прохожий
 
Регистрация: 19.09.2012
Сообщения: 10
Репутация: 10
По умолчанию

Грызли такое. Вторая трабла решена, спасибо:
Код:
SELECT * FROM table1 WHERE field1 !~ '^(0|1|2|3|4|5|6|7|8|9)';

Либо так:
Код:
SELECT * FROM table1
WHERE NOT field1 LIKE '0%'
AND NOT field1 LIKE '1%'
AND NOT field1 LIKE '2%'
AND NOT field1 LIKE '3%'
AND NOT field1 LIKE '4%'
AND NOT field1 LIKE '5%'
AND NOT field1 LIKE '6%'
AND NOT field1 LIKE '7%'
AND NOT field1 LIKE '8%'
AND NOT field1 LIKE '9%';

На решение первого вопроса, моего серого вещества видимо не хватает.

Последний раз редактировалось huminclouds, 25.09.2012 в 18:03.
Ответить с цитированием
  #6  
Старый 25.09.2012, 19:01
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

1.
Код:
Query.SQL.Text:='SELECT * FROM table1 WHERE field1 like :p1';
Query.ParamByName('p1').asString:='%\%';

2. можно попробовать так (только функцию substring нуно адаптировать для Postgre)
Код:
SELECT * FROM u_b_i_e WHERE SUBSTRING(oper_version from 1 for 1) in ('1','2')
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
huminclouds (25.09.2012)
  #7  
Старый 25.09.2012, 20:01
huminclouds huminclouds вне форума
Прохожий
 
Регистрация: 19.09.2012
Сообщения: 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от Yurk@
2. можно попробовать так (только функцию substring нуно адаптировать для Postgre)
Код:
SELECT * FROM u_b_i_e WHERE SUBSTRING(oper_version from 1 for 1) in ('1','2')

Да, это тоже работает
Код:
SELECT * FROM table1 WHERE SUBSTRING(field1 from 1 for 1) NOT IN (0,1,2,3,4,5,6,7,8,9)

По поводу первого решения. Это сработало! Если передать '%\\%' через параметр, то Postgres такой запрос кушает как надо. Спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:10.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025