Работая с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8, программисты часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π°Π½Π°Π»ΠΈΠ·Π° тСкстовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ нСпосрСдствСнно Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ клиСнтского ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ доступны всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², язык запросов ΠΈΠΌΠ΅Π΅Ρ‚ свой спСцифичСский Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Одной ΠΈΠ· Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ строк являСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΡ… Π΄Π»ΠΈΠ½Ρ‹ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ, сортировки ΠΈΠ»ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

МногиС Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ пСрСнСсти Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈΠ· встроСнного языка, полагая, Ρ‡Ρ‚ΠΎ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π²Π΅Π·Π΄Π΅. Однако запрос выполняСтся сСрвСром Π‘Π£Π‘Π”, ΠΈ для манипуляций с тСкстом Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ подсчСт символов Π² контСкстС SQL-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ синтаксиса 1Π‘, критичСски Π²Π°ΠΆΠ½ΠΎ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π”Π›Π‘Π’Π , рассмотрим Π½ΡŽΠ°Π½ΡΡ‹ подсчСта Π΄Π»ΠΈΠ½Ρ‹ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈ научимся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для построСния слоТной бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ распространСнных ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с пустыми значСниями ΠΈ ΠΊΠ°ΠΊ эффСктивно ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкстовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Основная функция для измСрСния Π΄Π»ΠΈΠ½Ρ‹ тСкста

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ являСтся встроСнная функция Π”Π›Π‘Π’Π (). Она ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ строковоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ количСству символов Π² этой строкС. Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ с встроСнным языком ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

ΠŸΡ€ΠΈ использовании Π”Π›Π‘Π’Π  Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ ВЫБРАВЬ Π²Ρ‹ создаСтС вычисляСмоС ΠΏΠΎΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Если ΠΆΠ΅ функция примСняСтся Π² Π±Π»ΠΎΠΊΠ΅ Π“Π”Π•, ΠΎΠ½Π° позволяСт ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ записи ΠΏΠΎ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ Π΄Π»ΠΈΠ½Ρ‹ тСкста. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ поискС Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ структуры, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² фиксированного Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ функция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π»ΡŽΠ±Ρ‹ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΠΊ Ρ‚ΠΈΠΏΡƒ Π‘Ρ‚Ρ€ΠΎΠΊΠ°. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ поля Ρ‚Π°Π±Π»ΠΈΡ†, константы ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… строковых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Однако стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния запроса ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ѐункция Π”Π›Π‘Π’Π  Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0 для пустой строки, Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ NULL (НСопрСдСлСно) зависит ΠΎΡ‚ контСкста. Π’ условии сравнСния NULL ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ записи ΠΈΠ· Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ, Ссли Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ этот случай явно.

πŸ’‘

ΠŸΡ€ΠΈ частом использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π”Π›Π‘Π’Π  Π² условиях ΠΎΡ‚Π±ΠΎΡ€Π° ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ поля установлСны индСксы, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, хотя сама функция часто ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ использованиС индСкса для быстрого поиска.

Бинтаксис ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Π² ΠΊΠΎΠ΄Π΅

Рассмотрим практичСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. Допустим, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Π»ΠΈΠ½Π° наимСнования ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 50 символов. Π’ этом случаС ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² сСкции ΠΎΡ‚Π±ΠΎΡ€Π°. Код запроса Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ВЫБРАВЬ

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

Π”Π›Π‘Π’Π (НомСнклатура.НаимСнованиС) КАК ДлинаНаимСнования

Π˜Π—

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

Π“Π”Π•

Π”Π›Π‘Π’Π (НомСнклатура.НаимСнованиС) > 50

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ вычислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запроса. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. ИспользованиС псСвдонима КАК ДлинаНаимСнования Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Π°ΠΊΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для динамичСского формирования строк. НапримСр, Ссли трСбуСтся ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ тСкст Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, Π·Π½Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄Π»ΠΈΠ½Ρ‹ позволяСт ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ нСобходимости ΠΎΠ±Ρ€Π΅Π·ΠΊΠΈ. ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠŸΠžΠ”Π‘Π’Π ΠžΠšΠ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности для манипуляций с тСкстовыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ прямо Π½Π° сторонС сСрвСра Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности запроса

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

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Если Ρ‚Π°Π±Π»ΠΈΡ†Π° содСрТит ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй, Π° условиС Π“Π”Π• ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΡ‚ поля, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ использования индСкса. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях рСкомСндуСтся Π·Π°Ρ€Π°Π½Π΅Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½ выполнСния запроса.

Π Π°Π±ΠΎΡ‚Π° с полями Ρ‚ΠΈΠΏΠ° Π₯ранилищСЗначСния ΠΈ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€

НС всС поля Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ Π‘Ρ‚Ρ€ΠΎΠΊΠ°. Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ значСния Π² полях Ρ‚ΠΈΠΏΠ° Π₯ранилищСЗначСния ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. ΠŸΡ€ΡΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π”Π›Π‘Π’Π  ΠΊ Ρ‚Π°ΠΊΠΈΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния запроса, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏΡ‹ нСсовмСстимы.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ явно привСсти Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ строкС. Π’ языкС запросов 1Π‘ это дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции Π•Π‘Π’Π¬NULL ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ прСобразования, Π½ΠΎ Ρ‡Π°Ρ‰Π΅ всСго достаточно ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΡƒΡŽ строку, Ссли ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° позволяСт нСявноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Однако Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ явноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· встроСнныС возмоТности ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ.

Рассмотрим ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠ»Π΅ΠΌ ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ тСкста Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ, сначала Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ строковоС прСдставлСниС. Если ΠΆΠ΅ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎΠ± Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (GUID), Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Π° фиксирована ΠΏΡ€ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ, Π½ΠΎ строковоС прСдставлСниС ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²Ρ‹Π²ΠΎΠ΄Π° (с дСфисами ΠΈΠ»ΠΈ Π±Π΅Π·).

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠŸΡ€ΡΠΌΠΎΠ΅ использованиС Π”Π›Π‘Π’Π  НСобходимыС дСйствия ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Π°Ρ Π΄Π»ΠΈΠ½Π°
Π‘Ρ‚Ρ€ΠΎΠΊΠ° Допустимо НСт Зависит ΠΎΡ‚ содСрТимого
Число Ошибка ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² строку Зависит ΠΎΡ‚ разрядности
Π₯ранилищСЗначСния Ошибка Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ значСния Зависит ΠΎΡ‚ сСриализации
Π‘ΡƒΠ»Π΅Π²ΠΎ Ошибка ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² строку 3-5 символов (Π˜ΡΡ‚ΠΈΠ½Π°/Π›ΠΎΠΆΡŒ)

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с полями Ρ‚ΠΈΠΏΠ° Π₯ранилищСЗначСния ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° строкового прСдставлСния ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°ΠΉΡ‚Π°Ρ… Π½Π° дискС ΠΈΠ·-Π·Π° особСнностСй сСриализации ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° пустых строк ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ НСопрСдСлСно

Одной ΠΈΠ· самых ΠΊΠΎΠ²Π°Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Π΄Π»ΠΈΠ½Ρ‹ строк являСтся Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ пустой строкой "" ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ NULL (Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… 1Π‘ β€” НСопрСдСлСно). Ѐункция Π”Π›Π‘Π’Π  ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ строку, возвращая ноль. Однако ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ NULL Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ особого внимания.

Π’ языкС запросов 1Π‘ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ ΠΎΡ‚ NULL часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выраТСния Ρ‚Π°ΠΊΠΆΠ΅ становится NULL. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² арифмСтичСских опСрациях ΠΈΠ»ΠΈ сравнСниях, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСпрСдсказуСмым Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. НапримСр, условиС Π”Π›Π‘Π’Π (ПолС) = 0 Π½Π΅ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ записи, Π³Π΄Π΅ ΠΏΠΎΠ»Π΅ Ρ€Π°Π²Π½ΠΎ NULL.

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… ситуаций рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π•Π‘Π’Π¬NULL. Она позволяСт ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ΠΏΡƒΡΡ‚ΡƒΡŽ строку. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ функция Π”Π›Π‘Π’Π  всСгда ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ NULL Π½Π΅ Ρ€Π°Π²Π½ΠΎ пустой строкС?

Π’ рСляционных Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… NULL ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ отсутствиС значСния ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ, Π½Π΅ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ. ΠŸΡƒΡΡ‚Π°Ρ строка β€” это Π²ΠΏΠΎΠ»Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π΅ тСкст Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ NULL с Ρ‡Π΅ΠΌ-Π»ΠΈΠ±ΠΎ (Π΄Π°ΠΆΠ΅ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ NULL) ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ UNKNOWN ΠΈΠ»ΠΈ NULL, Π° Π½Π΅ ИБВИНА.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ бСзопасного ΠΊΠΎΠ΄Π° выглядит Ρ‚Π°ΠΊ:

ВЫБРАВЬ

Π”Π›Π‘Π’Π (Π•Π‘Π’Π¬NULL(Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹.ИНН, "")) КАК Π”Π»ΠΈΠ½Π°Π˜ΠΠ

Π˜Π—

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ обСспСчиваСт ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ запроса Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ "Π±ΠΈΡ‚Ρ‹Ρ…" ΠΈΠ»ΠΈ Π½Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Π΅. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· старых систСм ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников.

ИспользованиС Π΄Π»ΠΈΠ½Ρ‹ строки для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ строки Π² запросС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ просто для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π° для контроля качСства Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ запроса ΠΌΠΎΠΆΠ½ΠΎ быстро Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ записи, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ трСбования. НапримСр, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π»ΠΈΠ½Ρ‹ ИНН, ΠžΠ“Π Π ΠΈΠ»ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹Ρ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ².

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ всС элСмСнты справочника, Π³Π΄Π΅ Π΄Π»ΠΈΠ½Π° поля Π½Π΅ соотвСтствуСт стандарту. Π­Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ рСгулярный Π°ΡƒΠ΄ΠΈΡ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· написания слоТных ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ Π½Π° встроСнном языкС. Достаточно ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ запрос ΠΊΠ°ΠΊ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

  • πŸ” Поиск Π΄ΡƒΠ±Π»Π΅ΠΉ ΠΏΠΎ ΡƒΠΊΠΎΡ€ΠΎΡ‡Π΅Π½Π½Ρ‹ΠΌ наимСнованиям: Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° записСй, Π³Π΄Π΅ Π”Π›Π‘Π’Π (НаимСнованиС) < 5.
  • πŸ“ž Валидация Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ²: ΠΎΡ‚Π±ΠΎΡ€ записСй, Π³Π΄Π΅ Π΄Π»ΠΈΠ½Π° поля Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π½Π΅ Ρ€Π°Π²Π½Π° ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ количСству Ρ†ΠΈΡ„Ρ€.
  • 🏷️ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»ΠΎΠ²: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° соотвСтствия Π΄Π»ΠΈΠ½Ρ‹ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌΡƒ стандарту кодирования.
πŸ“Š Какой Ρ‚ΠΈΠΏ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π»ΠΈΠ½Ρ‹ строки
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° (regex)
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒ

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π·Π½Π°Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ позволяСт динамичСски Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйсы ΠΈΠ»ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹. Если Π² запросС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ для автоматичСского ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ ΡˆΡ€ΠΈΡ„Ρ‚Π°, Ссли тСкст Π½Π΅ помСщаСтся Π² ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ ячСйку.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с тСкстом

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

Если условиС ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ строки являСтся основным ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ ΠΎΡ‚Π±ΠΎΡ€Π°, ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ возмоТности хранСния Π΄Π»ΠΈΠ½Ρ‹ строки Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ рСгистрС свСдСний ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π΅. ОбновлСниС Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ записи ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ΠΎΠ³Π΄Π° Π² запросС Π²Ρ‹ смоТСтС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ числовому полю, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ вычислСния Π΄Π»ΠΈΠ½Ρ‹ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, Ссли эту Π·Π°Π΄Π°Ρ‡Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° сСрвСр с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ запроса. ΠŸΠ΅Ρ€Π΅Π³ΠΎΠ½ΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов тСкста ΠΏΠΎ сСти Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ ΠΈΡ… Π΄Π»ΠΈΠ½Ρƒ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, являСтся Π³Ρ€ΡƒΠ±ΠΎΠΉ ошибкой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ запросов ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. ВсСгда провСряйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

πŸ’‘

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ вычислСнной Π΄Π»ΠΈΠ½Ρ‹ строки Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ числовом Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π΅ β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ способ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡƒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ тСкста Π² высоконагруТСнных систСмах.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π”Π›Π‘Π’Π  Π² Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… запроса?

Π”Π°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π”Π›Π‘Π’Π  ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π‘Π“Π Π£ΠŸΠŸΠ˜Π ΠžΠ’ΠΠ’Π¬ ПО, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² этом Π½Π΅Ρ‚ смысла, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ строки ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ всС строки ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, нСзависимо ΠΎΡ‚ ΠΈΡ… содСрТания. Π§Π°Ρ‰Π΅ Π΄Π»ΠΈΠ½Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² условиях ΠΎΡ‚Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Π² список ΠΏΠΎΠ»Π΅ΠΉ.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки Π² Π±Π°ΠΉΡ‚Π°Ρ…, Π° Π½Π΅ Π² символах?

Ѐункция Π”Π›Π‘Π’Π  Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство символов. Для получСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π² Π±Π°ΠΉΡ‚Π°Ρ… Π² запросС 1Π‘ Π½Π΅Ρ‚ прямой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это зависит ΠΎΡ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ UTF-16 ΠΈΠ»ΠΈ UTF-8). Для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ расчСта Π² Π±Π°ΠΉΡ‚Π°Ρ… Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный язык Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ сСрвСра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ послС получСния Π΄Π°Π½Π½Ρ‹Ρ….

Π§Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ Π”Π›Π‘Π’Π , Ссли ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΉ число?

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° числа Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ². НСобходимо ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ число Π² строку. Π’ запросС 1Π‘ Π½Π΅Ρ‚ нСявного привСдСния числа ΠΊ строкС для этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… контСкстов.

ВлияСт Π»ΠΈ Π΄Π»ΠΈΠ½Π° строки Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ соСдинСния Ρ‚Π°Π±Π»ΠΈΡ† (JOIN)?

Π‘Π°ΠΌΠ° ΠΏΠΎ сСбС Π΄Π»ΠΈΠ½Π° строки Π½Π΅ влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ соСдинСния, Ссли соСдинСниС ΠΈΠ΄Π΅Ρ‚ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ. Однако Ссли Π²Ρ‹ соСдиняСтС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎ тСкстовым полям ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π”Π›Π‘Π’Π  Π² условии соСдинСния, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ использованиС индСксов ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ запрос.