Текущий архив: 2011.01.23;
Скачать: CL | DM;
Вниз
select отказывается искать данные в столбце... Найти похожие ветки
← →
Ламот © (2009-08-20 16:31) [0]День добрый, создал таблицу:
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. Извиняюсь за "сумбур в описании вопроса"...
← →
Медвежонок Пятачок © (2009-08-20 16:33) [1]селекту надо верить. иначе далеко не уедешь
← →
Ламот © (2009-08-20 16:39) [2]Вот-вот, я пока искал где у меня скрипт сбоит - с ног сбился, а когда нашел - совсем крыша поехала... (((
Так что это может быть?
Загружаемый текст состоит из латинских букв, цифр, точек и собаки... может это из-за собаки (@), она присутствует в каждом значении?
← →
Медвежонок Пятачок © (2009-08-20 16:45) [3]Так что это может быть?
В таблице нет записей, которые удовлетворяют условию "where".
Либо в читающей транзакции они еще не видны, что равносильно тому, что их там нет
← →
Palladin © (2009-08-20 16:48) [4]чего не понятного... нет в таблице name = "результат предыдущего запроса"
← →
Ламот © (2009-08-20 17:05) [5]Докопался, спасибо, непечатные символы в саму таблицу забрались, поэтому по строгому сравнению не находились, нашел по ~...
Еще раз всем спасибо, буду переделывать))
← →
stas © (2009-08-20 17:06) [6]а так?
select * from temp_table where name Like "результат%";
← →
Ламот © (2009-08-20 17:30) [7]
> а так?select * from temp_table where name Like "результат%";
Почти так и нашел (только использовал тильду а не Лайк, до сих пор не понимаю принципиальной разницы между ними, кроме того, что пишется кароче).
В общем - еще раз всем спасибо)
← →
Ega23 © (2009-08-21 10:09) [8]
> (только использовал тильду а не Лайк, до сих пор не понимаю
> принципиальной разницы между ними, кроме того, что пишется
> кароче
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
← →
Vitalts (2009-08-31 14:31) [9]~ в PostgreSQL - регулярные выражения
Страницы: 1 вся ветка
Текущий архив: 2011.01.23;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.011 c