Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

select отказывается искать данные в столбце... [pgsql]


Ламот ©   (2009-08-20 16:31:00) 

День добрый, создал таблицу:
CREATE TABLE temp_table (name varchar(128));
загрузил в нее данные из файла, делаю:
select count (name);
показывает, что в таблице 2094 записей (столько и должно быть).
Затем делаю:
select * from temp_table limit 1;
копирую результат и запускаю:
select * from temp_table where name = 'результат предыдущего запроса';
Выдает: (0 rows)
... что-то не так сделал, когда создавал таблицу или что это может быть?
Визуально - данные идентичны, по \e в запросе тоже все чисто (непечатных символов нет), куда посмотреть и что подправить?

Зарание спасибо.

PS. Извиняюсь за "сумбур в описании вопроса"...


Vitalts   (2009-08-31 14:31:00) [1]

~ в PostgreSQL - регулярные выражения


Ega23   (2009-08-21 10:09:00) [2]


> (только использовал тильду а не Лайк, до сих пор не понимаю
> принципиальной разницы между ними, кроме того, что пишется
> кароче


Postgres:
The operator ~~ is equivalent to LIKE, and ~~* corresponds to ILIKE. There are also !~~ and !~~* operators that represent NOT LIKE and NOT ILIKE, respectively. All of these operators are PostgreSQL-specific.

MSSQL:
~ (побитовое НЕ) (Transact-SQL)
Побитовый оператор ~ выполняет побитовую логическую операцию НЕ для аргумента expression, обрабатывая последовательно каждый бит. Если аргумент expression имеет значение 0, биты в результирующем наборе устанавливаются в 1; иначе бит в результате приобретает значение 0. Другими словами, единицы меняются на нули, нули меняются на единицы.


А Like - он и в Postgres и в MSSQL и во всех остальных СУБД - всегда LIKE


Ламот   (2009-08-20 17:30:00) [3]


> а так?select * from temp_table where name Like 'результат%';

Почти так и нашел (только использовал тильду а не Лайк, до сих пор не понимаю принципиальной разницы между ними, кроме того, что пишется кароче).
В общем - еще раз всем спасибо)


stas   (2009-08-20 17:06:00) [4]

а так?
select * from temp_table where name Like 'результат%';


Ламот   (2009-08-20 17:05:00) [5]

Докопался, спасибо, непечатные символы в саму таблицу забрались, поэтому по строгому сравнению не находились, нашел по ~...
Еще раз всем спасибо, буду переделывать))


Palladin   (2009-08-20 16:48:00) [6]

чего не понятного... нет в таблице name = 'результат предыдущего запроса'


Медвежонок Пятачок   (2009-08-20 16:45:00) [7]

Так что это может быть?

В таблице нет записей, которые удовлетворяют условию "where".
Либо в читающей транзакции они еще не видны, что равносильно тому, что их там нет


Ламот   (2009-08-20 16:39:00) [8]

Вот-вот, я пока искал где у меня скрипт сбоит - с ног сбился, а когда нашел - совсем крыша поехала... (((
Так что это может быть?
Загружаемый текст состоит из латинских букв, цифр, точек и собаки... может это из-за собаки (@), она присутствует в каждом значении?


Медвежонок Пятачок   (2009-08-20 16:33:00) [9]

селекту надо верить. иначе далеко не уедешь


Наверх

Титульная страница Поиск, карта сайта Написать письмо