Π Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 часто Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³ΠΈΠ±ΠΊΠΈΡ… инструмСнтов для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Одним ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² являСтся использованиС маски ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ запроса. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ заданная маска позволяСт Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ записи, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, Ρ‡Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска ΠΏΠΎ справочникам, ΠΆΡƒΡ€Π½Π°Π»Π°ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ аналитичСским ΠΎΡ‚Ρ‡Π΅Ρ‚Π°ΠΌ.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ простых ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ "Ρ€Π°Π²Π½ΠΎ" ΠΈΠ»ΠΈ "большС", ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΠžΠ”ΠžΠ‘ΠΠž (ΠΈΠ»ΠΈ LIKE Π² языкС запросов) Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½Π΅Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅ условия. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ стандартными символами подстановки ΠΈ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π΄Π²ΠΈΠΆΠΎΠΊ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ эти условия ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ запроса ΠΊ Π‘Π£Π‘Π”.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ синтаксис задания масок, рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° ΠΈ обсудим Π½ΡŽΠ°Π½ΡΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ строковых ΠΏΠΎΠ»Π΅ΠΉ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±Π°Π·Π°Ρ….

Бинтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠŸΠžΠ”ΠžΠ‘ΠΠž Π² языкС запросов

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ инструмСнтом для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с шаблонами Π² запросах 1Π‘ являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΠžΠ”ΠžΠ‘ΠΠž. Он провСряСт, соотвСтствуСт Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля Π·Π°Π΄Π°Π½Π½ΠΎΠΉ строкС-ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. Бинтаксис ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост: послС ΠΈΠΌΠ΅Π½ΠΈ поля указываСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π° Π·Π°Ρ‚Π΅ΠΌ строковая константа ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, содСрТащий маску.

Π’Π½ΡƒΡ‚Ρ€ΠΈ маски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° основных спСцсимвола, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° % замСняСт собой Π»ΡŽΠ±ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов любой Π΄Π»ΠΈΠ½Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡƒΡΡ‚ΡƒΡŽ строку. Π‘ΠΈΠΌΠ²ΠΎΠ» подчСркивания _ замСняСт Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ любой символ.

Если ΠΏΠΎΠ»Π΅ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ΠΎ ΠΊΠ°ΠΊ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΊ рСгистру, Ρ‚ΠΎ маска 'А%' Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 'Π°Π‘Π²'.

Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Π² ΠΊΠΎΠ΄Π΅ запроса:

ВЫБРАВЬ

НомСнклатура.НаимСнованиС

Π˜Π—

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК НомСнклатура

Π“Π”Π•

НомСнклатура.НаимСнованиС ΠŸΠžΠ”ΠžΠ‘ΠΠž &МаскаПоиска

Π—Π΄Π΅ΡΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ &МаскаПоиска Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ ΠΈΠ· внСшнСго контСкста выполнСния запроса. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ пСрСмСнная внСшнСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

πŸ’‘

Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ читаСмости ΠΊΠΎΠ΄Π° всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с &) вмСсто подстановки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² тСкст запроса.

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы ΠΈ экранированиС Π² масках

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ символы % ΠΈ _ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ систСмой, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ вопрос: ΠΊΠ°ΠΊ Π½Π°ΠΉΡ‚ΠΈ запись, Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΠΈΠ»ΠΈ Π·Π½Π°ΠΊ подчСркивания? Для этого сущСствуСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ экранирования.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ°Ρ‚ΡŒ_literal_ эти символы, ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ символом-экраном. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² 1Π‘ Π² качСствС Ρ‚Π°ΠΊΠΎΠ³ΠΎ символа часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш \, ΠΎΠ΄Π½Π°ΠΊΠΎ синтаксис ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ явного указания символа экранирования Π² конструкции запроса, Ссли это поддСрТиваСтся ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π‘Π£Π‘Π” Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅.

Π’ языкС запросов 1Π‘ для поиска самого символа ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ %% Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… контСкстах, Π»ΠΈΠ±ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Однако стандартным ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ способом Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 8.3 являСтся использованиС конструкции ΠŸΠžΠ”ΠžΠ‘ΠΠž.. Π­ΠšΠ ΠΠΠ˜Π ΠžΠ’ΠΠΠ˜Π•, Ссли Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного указания, Π½ΠΎ Ρ‡Π°Ρ‰Π΅ всСго достаточно просто ΡƒΠ΄Π²ΠΎΠΈΡ‚ΡŒ символ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСцифичСскиС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

  • πŸ” Π‘ΠΈΠΌΠ²ΠΎΠ» % ΠΈΡ‰Π΅Ρ‚ Π»ΡŽΠ±ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: 'Π’ΠΎΠ²Π°Ρ€%' Π½Π°ΠΉΠ΄Π΅Ρ‚ "Π’ΠΎΠ²Π°Ρ€", "Π’ΠΎΠ²Π°Ρ€Π½Ρ‹ΠΉ Π·Π½Π°ΠΊ", "Π’ΠΎΠ²Π°Ρ€ΠΎΠ²Π΅Π΄".
  • πŸ”  Π‘ΠΈΠΌΠ²ΠΎΠ» _ ΠΈΡ‰Π΅Ρ‚ Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ: 'Π¦_Π½Π°' Π½Π°ΠΉΠ΄Π΅Ρ‚ "Π¦Π΅Π½Π°", "Π¦Π΅Π½Π°", Π½ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚ "Π¦Π΅Π½Ρ‹".
  • πŸ›‘οΈ Для поиска literal символа `%` ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π·Π°Π²ΠΈΡΡΡ‰ΡƒΡŽ ΠΎΡ‚ настроСк Π»ΠΎΠΊΠ°Π»ΠΈ, часто это \%.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΌ символам. Маска '% %' Π½Π°ΠΉΠ΄Π΅Ρ‚ всС строки, содСрТащиС хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ±Π΅Π». Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для поиска ЀИО, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π±Π΅Π· раздСлСния Π½Π° Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ ΠΈ имя.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ПовСдСниС экранирования ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π‘Π£Π‘Π” (MS SQL, PostgreSQL, Oracle). ВсСгда тСстируйтС поиск ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов Π½Π° тСстовой ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ сСрвСр.

πŸ“Š Какая Π‘Π£Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅?
MS SQL Server
PostgreSQL
Oracle
Ѐайловая база 1Б

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ· Ρ„ΠΎΡ€ΠΌΡ‹ Π² запрос

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ маски Ρ€Π΅Π΄ΠΊΠΎ ΠΏΠΈΡˆΡƒΡ‚ΡΡ ТСстко Π² ΠΊΠΎΠ΄Π΅. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Ρ‡Π°ΡΡ‚ΡŒ названия Π² ΠΏΠΎΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, Π° систСма сама Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ маску. Π—Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° β€” ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² запрос.

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π» слово "Молоко", систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΈΡΠΊΠ°Ρ‚ΡŒ Π»ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ совпадСниС ΠΈΠ»ΠΈ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅. Π§Π°Ρ‰Π΅ всСго рСализуСтся Π»ΠΎΠ³ΠΈΠΊΠ° "содСрТит", ΠΊΠΎΠ³Π΄Π° ΠΊ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ с Π΄Π²ΡƒΡ… сторон Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Ρ‹. Π­Ρ‚ΠΎ дСлаСтся Π² ΠΊΠΎΠ΄Π΅ управляСмой Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠ΅Ρ€Π΅Π΄ запуском запроса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ формирования ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² ΠΊΠΎΠ΄Π΅ 1Π‘:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹Π—Π°ΠΏΡ€ΠΎΡΠ° = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°;

Π’Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π€ΠΎΡ€ΠΌΠ°.ΠŸΠΎΠ»Π΅Π’Π²ΠΎΠ΄Π°;

// ДобавляСм маску "содСрТит"

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹Π—Π°ΠΏΡ€ΠΎΡΠ°.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("МаскаПоиска", "%" + Π’Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ + "%");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ(ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹Π—Π°ΠΏΡ€ΠΎΡΠ°);

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ тСкст запроса для Ρ€Π°Π·Π½Ρ‹Ρ… сцСнариСв поиска. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ динамичСски ΠΌΠ΅Π½ΡΡ‚ΡŒ маску Π² зависимости ΠΎΡ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: "начинаСтся с", "заканчиваСтся Π½Π°" ΠΈΠ»ΠΈ "Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ совпадСниС".

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π²Π²ΠΎΠ΄ Π½Π° пустоту. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Π²Π΅Π», ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° маски '%%' ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ всСх записСй ΠΈΠ· ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ зависаниС интСрфСйса.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΠ΅Ρ€Π΅Π΄ запросом

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ использовании LIKE

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠŸΠžΠ”ΠžΠ‘ΠΠž ΠΈΠΌΠ΅Π΅Ρ‚ прямоС влияниС Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ: Ссли маска начинаСтся с символа подстановки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, '%Ρ‚ΠΎΠ²Π°Ρ€'), Ρ‚ΠΎ стандартный индСкс ΠΏΠΎ полю Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован эффСктивно.

Π’ этом случаС Π‘Π£Π‘Π” Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Table Scan), провСряя ΠΊΠ°ΠΆΠ΄ΡƒΡŽ запись Π½Π° соотвСтствиС ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. На Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ строк) это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ. Если ΠΆΠ΅ маска начинаСтся с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ символа ('Π’ΠΎΠ²Π°Ρ€%'), ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов часто ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс для быстрого ΠΎΡ‚Π±ΠΎΡ€Π°.

Π’ΠΈΠΏ маски ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ИспользованиС индСкса Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ
НачинаСтся с 'А%' Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (Seek) Высокая
Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ '%А%' НСт (Scan) Низкая
ЗаканчиваСтся Π½Π° '%А' НСт (Scan) Низкая
Один символ 'А_Π’' Частично БрСдняя

Для ΠΏΠΎΠ»Π΅ΠΉ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ часто осущСствляСтся поиск ΠΏΠΎ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ (содСрТит), ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ созданиС полнотСкстовых индСксов, Ссли Π‘Π£Π‘Π” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ поиска 1Π‘, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ индСксация для поиска.

πŸ’‘

Маска, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ с %, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ использованиС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ индСкса ΠΏΠΎ полю, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

Π Π°Π±ΠΎΡ‚Π° с числами ΠΈ Π΄Π°Ρ‚Π°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· маску

Π₯отя ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΠžΠ”ΠžΠ‘ΠΠž ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для строк, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² запросах 1Π‘ происходит нСявноС ΠΈΠ»ΠΈ явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ². Однако Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ считаСтся ΠΏΠ»ΠΎΡ…ΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам.

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ маску ΠΊ числовому полю, систСма сначала ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ число Π² строку согласно Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ настройкам Π»ΠΎΠΊΠ°Π»ΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части (Ρ‚ΠΎΡ‡ΠΊΠ° ΠΈΠ»ΠΈ запятая) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ поиска. НапримСр, число 10.5 ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π² строку "10,5".

Π‘ Π΄Π°Ρ‚Π°ΠΌΠΈ ситуация Π΅Ρ‰Π΅ слоТнСС. Π€ΠΎΡ€ΠΌΠ°Ρ‚ строкового прСдставлСния Π΄Π°Ρ‚Ρ‹ зависит ΠΎΡ‚ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ сСрвСра. Маска '%2023%' ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ для поиска записСй Π·Π° 2023 Π³ΠΎΠ΄, Π½ΠΎ это ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

Для Π΄Π°Ρ‚ ΠΈ чисСл всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ стандартныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния: ΠœΠ•Π–Π”Π£, >=, <=. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ нСзависимо ΠΎΡ‚ настроСк языка ΠΈ обСспСчиваСт использованиС индСксов.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ маску для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Ρ‚, Ссли Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‹ Π² строку для сравнСния ΡƒΠ±ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π»ΠΎΠΌΠ°Π΅Ρ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΡ€ΠΈ смСнС часовых поясов.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ сравнСниС Π΄Π°Ρ‚ строками опасно?

ΠŸΡ€ΠΈ сравнСнии Π΄Π°Ρ‚ ΠΊΠ°ΠΊ строк "01.02.2023" ΠΈ "10.01.2023", лСксикографичСски вторая строка ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ мСньшС ΠΈΠ»ΠΈ большС Π² зависимости ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅.

ЧастыС ошибки ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° запросов с маской

Одной ΠΈΠ· самых распространСнных ошибок являСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΠ· внСшнСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² запрос, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° соотвСтствуСт ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ. Часто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠΊΠΎΠ³Π΄Π° запрос ΠΆΠ΄Π΅Ρ‚ БправочникБсылка, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с символами Π½ΠΎΠ²ΠΎΠΉ строки. Если Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΠ»Π΅ хранится тСкст с пСрСносом строки, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΡ‰Π΅Ρ‚ подстроку Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° этого, маска ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ссли символ Π½ΠΎΠ²ΠΎΠΉ строки Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡ‡Ρ‚Π΅Π½ Π² шаблонС.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ слоТных масок ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ консоль запросов. Π’Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ сформированный тСкст запроса ΠΈ подставлСнныС значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ символы Π² вашСй срСдС.

Если поиск Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΏΠ»Π°Π½ΠΎΠΌ выполнСния запроса. Он ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ индСкс ΠΈΠ»ΠΈ происходит ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС. На основС этого ΠΏΠ»Π°Π½Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ пСрСписывании условия ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ индСкса.

  • 🐞 Ошибка Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…: ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° числа вмСсто строки Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ маски.
  • πŸ“‰ Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ индСксов: использованиС '%..' Π² Π½Π°Ρ‡Π°Π»Π΅ маски Π±Π΅Π· нСобходимости.
  • 🌐 Π›ΠΎΠΊΠ°Π»ΡŒ: Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части ΠΏΡ€ΠΈ поискС ΠΏΠΎ числам, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ ΠΊ строкС.

ВсСгда провСряйтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска Π½Π° Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… значСниях. ΠŸΡƒΡΡ‚Π°Ρ строка, строка ΠΈΠ· ΠΎΠ΄Π½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², ΠΎΡ‡Π΅Π½ΡŒ длинная строка β€” всС эти случаи Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ошибок выполнСния запроса.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ БВРОКА() Π² запросС явно, Ссли Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ привСсти числовоС ΠΏΠΎΠ»Π΅ ΠΊ строкС ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ маски, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСявных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ поиска ΠΈ полнотСкстовый индСкс

Когда стандартного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠŸΠžΠ”ΠžΠ‘ΠΠž нСдостаточно ΠΈΠ»ΠΈ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° встроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ полнотСкстового поиска 1Π‘. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ слова Π² любом порядкС, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΡ€Ρ„ΠΎΠ»ΠΎΠ³ΠΈΡŽ (окончания) ΠΈ Ρ€Π°Π½ΠΆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎ рСлСвантности.

ΠŸΠΎΠ»Π½ΠΎΡ‚Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹ΠΉ поиск настраиваСтся Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… рСгистров ΠΈ справочников. Он создаСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ слуТСбныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ поиск ΠΏΠΎ словам. Π­Ρ‚ΠΎ идСальноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Π±Π°Π· Π·Π½Π°Π½ΠΈΠΉ.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ являСтся использованиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΠΎ слоТному списку масок, эффСктивнСС сначала Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ соСдинСниС (JOIN) с основной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ, Ρ‡Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ слоТный запрос с мноТСством условий Π˜Π›Π˜.

Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Для простых Ρ„ΠΎΡ€ΠΌ поиска ΠΏΠΎ названию ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ ΠŸΠžΠ”ΠžΠ‘ΠΠž. Для слоТных аналитичСских Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ полнотСкстовый поиск ΠΈΠ»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ структуры индСксов.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСгулярныС выраТСния Π² запросС 1Π‘?

НСт, язык запросов 1Π‘ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ рСгулярныС выраТСния (Regex) Π²Π½ΡƒΡ‚Ρ€ΠΈ конструкции ВЫБРАВЬ. Для слоТной ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎ рСгулярным выраТСниям Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΊΠΎΠ΄Π΅ 1Π‘ послС получСния Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Как Π½Π°ΠΉΡ‚ΠΈ запись, Π³Π΄Π΅ ΠΏΠΎΠ»Π΅ содСрТит символ вопроса?

Π‘ΠΈΠΌΠ²ΠΎΠ» вопроса Π½Π΅ являСтся спСцсимволом Π² масках 1Π‘ (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π‘Π£Π‘Π”), поэтому Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Однако, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· ODBC с спСцифичСскими Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ экранированиС.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ поиск ΠΏΠΎ маскС Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, хотя ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ?

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ†Π΅ строки Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Маска 'Π’ΠΎΠ²Π°Ρ€%' Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ' Π’ΠΎΠ²Π°Ρ€' (с ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ Π² Π½Π°Ρ‡Π°Π»Π΅). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘ΠžΠšΠ Π›() ΠΈΠ»ΠΈ БОКРП() Π² условии запроса для очистки Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ сравнСниСм.

ВлияСт Π»ΠΈ вСрсия ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠŸΠžΠ”ΠžΠ‘ΠΠž?

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис стабилСн ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚. Однако оптимизация выполнСния запроса ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с индСксами ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ВсСгда Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для получСния Π»ΡƒΡ‡ΡˆΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² выполнСния запросов.

МоТно Π»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько условий ΠŸΠžΠ”ΠžΠ‘ΠΠž?

Π”Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ И ΠΈ Π˜Π›Π˜ для ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… условий с масками. НапримСр: Π“Π”Π• ПолС1 ΠŸΠžΠ”ΠžΠ‘ΠΠž '%А%' И ПолС2 ΠŸΠžΠ”ΠžΠ‘ΠΠž 'Π‘%'.