Запитання з тегом «pattern-matching»

8
Узгодження шаблону з LIKE, SIMILAR TO або регулярними виразами в PostgreSQL
Мені довелося написати простий запит, де я шукаю ім’я людей, які починаються з B або D: SELECT s.name FROM spelers s WHERE s.name LIKE 'B%' OR s.name LIKE 'D%' ORDER BY 1 Мені було цікаво, чи є спосіб переписати це, щоб стати більш виконавським. Тож я можу уникати orта / …

3
Як реалізується LIKE?
Чи може хтось пояснити, як оператор LIKE реалізується в сучасних системах баз даних (наприклад, MySQL або Postgres)? або вказати мені на деякі посилання, які пояснюють це? Наївний підхід полягав би в тому, щоб перевірити кожен запис, виконавши регулярне вираження чи часткове збіг рядків на поле інтересу, але у мене є …

2
Як створити індекс для прискорення сукупного запиту LIKE на вираз?
Можливо, я задаю неправильне запитання в заголовку. Ось факти: Мої фольклорні служби скаржаться на повільний час реакції під час пошуку клієнтів на інтерфейсі адміністрування нашого сайту на базі Джанго. Ми використовуємо Postgres 8.4.6. Я почав реєструвати повільні запити і виявив цього вину: SELECT COUNT(*) FROM "auth_user" WHERE UPPER("auth_user"."email"::text) LIKE UPPER(E'%deyk%') …

1
Чому б ви індексували text_pattern_ops у текстовому стовпчику?
Сьогодні Сім баз даних за сім тижнів познайомили мене з індексами кожного оператора. Ви можете проіндексувати рядки для зразка, що відповідає попереднім запитам, створивши text_pattern_opsіндекс класу операторів, якщо значення індексуються в малі регістри. CREATE INDEX moves_title_pattern ON movies ( (lower(title) text_pattern_ops); Ми використовували це, text_pattern_opsтому що заголовок є текстовим типом. …

2
Пошук у триграмі стає набагато повільнішим, оскільки рядок пошуку збільшується
У базі даних Postgres 9.1 у мене є таблиця table1з ~ 1.5M рядками та стовпцем label(спрощені назви заради цього питання). Існує функціональний триграм-індекс на lower(unaccent(label))( unaccent()був незмінний, щоб дозволити його використання в індексі). Наступний запит досить швидкий: SELECT count(*) FROM table1 WHERE (lower(unaccent(label)) like lower(unaccent('%someword%'))); count ------- 1 (1 row) …

1
Отримайте часткове збіг із стовпця TSVECTOR, індексованого GIN
Я хотів би отримати результати, запитуючи це: SELECT * FROM ( SELECT id, subject FROM mailboxes WHERE tsv @@ plainto_tsquery('avail') ) AS t1 ORDER by id DESC; Це працює і повертає рядки, tsvщо містять Available. Але якщо я використовую avai(випав lable), він нічого не може знайти. Чи всі запити повинні …

2
Алгоритм знаходження найдовшого префікса
У мене дві таблиці. Перший - це таблиця з префіксами code name price 343 ek1 10 3435 nt 4 3432 ek2 2 По-друге, це записи записів з номерами телефонів number time 834353212 10 834321242 20 834312345 30 Мені потрібно написати скрипт, який знайде найдовший префікс з префіксів для кожного запису, …

5
Збіг а] (квадратний дужок, що закривається) з PATINDEX, використовуючи підстановку “[]”
Я пишу користувальницький JSON-аналізатор у T-SQL † . Для мого аналізатора я використовую PATINDEXфункцію, яка обчислює позицію токена зі списку лексем. У моєму випадку лексеми - це єдині символи, і вони включають такі: {} []:, Зазвичай, коли мені потрібно знайти (перше) положення будь-якого з декількох заданих символів, я використовую цю …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.