powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / WHERE Field <> 1 и значение NULL
6 сообщений из 31, страница 2 из 2
WHERE Field <> 1 и значение NULL
    #38982191
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изменил COLLATE непосредственно у колонки NAME в таблице на NOCASE_COLL

выполнил запрос
Код: sql
1.
SELECT FIRST 1 ID FROM REGIONS WHERE NAME = :SNAME AND SKIP IS DISTINCT FROM 1


что изменилось изменилось:
1. PLAN (REGIONS INDEX (REDIONS_NAME_IDX1)) - уже индекс используется
2. но результат всё равно = NULL
...
Рейтинг: 0 / 0
WHERE Field <> 1 и значение NULL
    #38982192
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Тогда мне нужно полностью "переделывать" столбец и "переливать" данные из старого в новый?
Варианты
1. Переделывать. Новый - перезилив - "переименование".
2. Если очень нужно, то материализовать столбец с нужной кодировкой и коллейтом с помощью триггера. (Это если индекс по функции не помог)
3. Если ширина выборки не радует, то денормализация - связки 1 к 1, и уже там шерстить
4. Если это ключевой момент системы и нужна адекватная скорость, то искать внешние системы и т.д.
...
Рейтинг: 0 / 0
WHERE Field <> 1 и значение NULL
    #38982208
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Изменил COLLATE непосредственно у колонки NAME в таблице на NOCASE_COLL
Так и надо. Применение коллейта на ходу, как использование функции. В индексе то всё по-старому.

X111. PLAN (REGIONS INDEX (REDIONS_NAME_IDX1)) - уже индекс используется
2. но результат всё равно = NULL
Результат от индекса зависеть не должен. Индекс - внутренний механизм обеспечения выполнения запроса.
Такой запрос выдаёт данные?
Код: sql
1.
SELECT FIRST 1 ID FROM REGIONS WHERE upper(NAME) = upper(:SNAME) AND SKIP IS DISTINCT FROM 1
...
Рейтинг: 0 / 0
WHERE Field <> 1 и значение NULL
    #38982219
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Изменил COLLATE непосредственно у колонки NAME в таблице на NOCASE_COLL
А индекс после этого ты пересоздал?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
WHERE Field <> 1 и значение NULL
    #38982269
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovX11Изменил COLLATE непосредственно у колонки NAME в таблице на NOCASE_COLL
А индекс после этого ты пересоздал?


Я не знал, что нужно пересоздавать индекс.
Пересоздал.
проверил запрос. Всё равно NULL

вот доказательство

"Город" есть



ищу "город"


результат null
...
Рейтинг: 0 / 0
WHERE Field <> 1 и значение NULL
    #38982288
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скрипт

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE REGIONS (
    ID                  "INT" NOT NULL /* "INT" = INTEGER */,
    PARENT              "INT" NOT NULL /* "INT" = INTEGER */,
    NAME                STRING50 NOT NULL COLLATE NOCASE_COLL /* STRING50 = VARCHAR(50) */,
    CCOUNT              "INT" DEFAULT 0 NOT NULL /* "INT" = INTEGER */,
    SORTINDEX           "INT" DEFAULT 0 NOT NULL /* "INT" = INTEGER */,
    IMAGEINDEX          "INT" DEFAULT -1 NOT NULL /* "INT" = INTEGER */,
    STATEINDEX          "INT" DEFAULT -1 NOT NULL /* "INT" = INTEGER */,
    FULLPATH            STRING255 NOT NULL COLLATE PXW_CYRL /* STRING255 = VARCHAR(255) */,
    SKIP FIB$BOOLEAN /* FIB$BOOLEAN = SMALLINT DEFAULT 0 NOT NULL CHECK (VALUE IN (0,1,NULL)) */
);
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / WHERE Field <> 1 и значение NULL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]