Приведення типів в mysql

Тут мова піде про основні способи приведення типів в MySQL. Заздалегідь слід обумовити той момент, що в більшості випадків приведення типів в MySQL спрацює автоматично, наприклад:

Однак в ряді випадків потрібне спеціальне приведення типів, про них і піде мова далі.

Випадок перший - Порівняння рядків (ключове слово BINARY)

В СУБД MySQL порівняння тестових рядків не є чутливою до порівнюваних рядків. Наприклад, якщо ми будемо порівнювати рядки «Чупакабра крутий» і «чупакабра КРУТ», то MySQL вважатиме їх ідентичними.

Однак, є метод щоб обійти цю особливість, полягає він у порівнянні двох рядків як довічних послідовностей, для цього рядок за допомогою ключового слова BINARY перетворюється в таку.

Використовувати ключове слово BYNARY в даному випадку, можливо як зліва від оператора порівняння так і праворуч.

Випадок другий - функція CAST

В MySQL існує функція CAST () - яка є стандартною функцією SQL і підтримується і багатьма іншими базами даних крім MySQL.
Призначення функції CAST () - це перетворення виразу з одного типу в інший.

Функція має наступний синтаксис:

Результатом роботи даної функції, буде перетворене вираз expr до типу type.

Тип type. може приймати значення:

Приклад роботи функції:

Функція CAST () часто використовується для сортування полів типу ENUM за алфавітом а не за чисельним значенням.
Робиться це так:

Також функція часто використовується для приведення формату дати:


Випадок третій - перекодування CONVERT

Третій варіант зміни типу даних, використання функції CONVERT () яка має наступний синтаксис:

У першому варіанті дію функції CONVERT () ідентично функції CAST ().

Другий варіант функції CONVERT () використовується для перетворення тексту з одного кодування в іншу.

Існує і альтернативний синтаксис:
При цьому варіанті перед перетворюється рядком поміщається ім'я кодування, яке передує символ підкреслення.