mysql like tutorial with syntax
Цей підручник пояснює узгодження шаблонів за допомогою оператора MySQL LIKE:
Зіставлення зразків є важливою функцією майже у всіх мовах програмування, таких як - Java / C # / Python тощо, які переважно використовують використання регулярних виразів для збігу зразків щодо заданого рядкового введення.
MySQL пропонує простий у використанні оператор під назвою LIKE, який може бути використаний для зіставлення значень String із заданими шаблонами та корисний для запитів великих наборів даних.
Що ви дізнаєтесь:
MySQL LIKE
Синтаксис:
Оператор LIKE використовується разом із реченням WHERE у запиті SELECT.
У простому запиті синтаксис виглядає так, як показано нижче.
SELECT {column_names} (*) FROM {table_name} WHERE {column_with_string_value} LIKE {match_pattern}
Різні компоненти цього синтаксису пояснюються наступним чином:
- {column_names}: Це імена стовпців, які відображатимуться як вихідні дані запиту SELECT. Ці значення можуть бути * для вибору всіх стовпців або розділених комами імен окремих стовпців.
- {ім'я таблиці}: Це ім'я таблиці, в якій потрібно виконати запит.
- {column_with_string_value}: Це стовпець, значення якого потрібно виконати за вказаним шаблоном. Зверніть увагу, що будь-яке порівняння виконується у стовпці, який можна перетворити на Рядок.
- {match_pattern}: Це вираз відповідності, з яким слід порівнювати значення стовпців. Зразок зразків збігів може бути - ' SM% '. Це відповідало б всім значенням стовпців, що починаються з SM. Приклад: РОЗУМНИЙ, ПАХУЩИЙ, ДИМИЙ тощо
Подібно до цього запиту, оператор LIKE можна використовувати навіть із складними запитами з JOINS тощо, оскільки LIKE - це просто оператор порівняння і може використовуватися там, де можливе порівняння значень стовпців.
Примітка: Подібно до LIKE, ми також можемо використовувати його заперечений варіант, який називається „NOT LIKE”. Тож у цьому випадку замість повернення результатів відповідності запити з оператором „НЕ ПОДОБАЄТЬСЯ” повернуть результати, які не відповідають.
Шаблони відповідності MySQL
LIKE Operator можна використовувати разом із 2 типами шаблонів. Вони перелічені в таблиці нижче:
Візерунок | |
---|---|
% (Відсоток) | Збіг будь-якої кількості символів (включаючи жодного символу) |
_ (Підкреслення) | Відповідає одному персонажу |
Зараз ми побачимо кілька прикладів, що використовують обидва шаблони.
% Шаблон збігу
Шаблон% використовується, коли потрібно зіставити 0 або більше символів після або до його розміщення.
Наприклад: якщо ви хочете зіставити рядок «це» зі стовпця з іменами працівників. Припустимо, є такі імена, як - Аміт, Анхіт, Арпіт, Микіта, Сміт тощо. Ми бачимо, що всі імена мають підрядок «це». Але їхнє позиціонування відрізняється.
Припустимо, назва стовпця: імена а назва таблиці - студентські_імена.
Для заповнення бази даних використовуйте такі зразки сценаріїв створення даних:
CREATE TABLE student_names (name VARCHAR(100)); INSERT INTO student_names VALUES('Amit'),('Ankit'),('Smith'),('Nikita'),('Mohit');
Давайте подивимося, як ми можемо використовувати шаблон% Match.
SELECT * FROM student_names WHERE name LIKE '%it%'
Вихід:
ім'я |
---|
Аміт |
Анкіт |
Сміт |
Микита |
Мохіт |
Тепер це означає, що він може збігатися з рядком, який має підряд „it” у будь-якому місці, і може бути будь-яка кількість символів до та після збігу. Ви можете бачити, що всі відповідні імена повертаються як вихідні дані.
Перепишіть запит, щоб збігалися лише ті імена, які закінчуються підрядком „it“.
SELECT * FROM student_names WHERE name LIKE '%it'
Отже, тут ми видалили кінцевий знак «%» і розмістили рядок «це» в кінці. Цей шаблон дозволяє будь-яку кількість символів перед символом 'it', але рядок повинен закінчуватися підрядком 'it'.
Вихід з вищезазначеного запиту:
ім'я |
---|
Аміт |
Анкіт |
Мохіт |
Примітка: Тут важливо зауважити, що шаблон, згаданий із використанням символу „%”, не враховує регістр. Отже, у наведеному вище прикладі замість «% it» ми могли б використовувати «% IT» або «% It», результат все одно залишився б незмінним.
_Візерунок відповідності
Давайте тепер подивимося, як ми можемо використовувати шаблон збігу «_». Ми знаємо, що '_' дозволяє рівно один символ.
Припустимо, ми хочемо запитати всі 5 імен букв з тієї самої таблиці (імена студентів).
Для використання збігу шаблонів «_» у цьому випадку ми вказали п’ять _ (підкреслення) разом із LIKE Pattern, який буде відповідати лише тим іменам, що мають довжину 5 символів.
SELECT * FROM student_names WHERE name LIKE '_____'
Вихід:
ім'я |
---|
Анкіт |
Мохіт |
Сміт |
Давайте подивимось на інший приклад. Припустимо, ми хочемо знайти всі 5 імен букв, які закінчуються підрядком „it“
SELECT * FROM student_names WHERE name LIKE '___it'
Тут ми використали 3 «_» (підкреслення) та фактичну підрядок, якій потрібно узгодити.
Вихід:
ім'я |
---|
Анкіт |
Мохіт |
Сміт |
Поєднання% And _ Pattern Matcher
У цьому розділі ми обговоримо, як ми можемо поєднати збіги% та _ зразків.
питання співбесіди для довідкової служби
Припустимо, ми хочемо знайти всі імена, які мають підрядок «it» і можуть містити рівно 2 символи після слова «it»
SELECT * FROM student_names WHERE name LIKE '%it_'
Тут ми поєднали шаблони збігу% та _, щоб знайти точну відповідність.
Вихід:
ім'я |
---|
Сміт |
Микита |
Використання NOT LIKE
NOT LIKE - це точне заперечення того, що повертає оператор LIKE. тобто він поверне всі записи / рядки, які не відповідають виразу збіг шаблону.
Приклад: Припустимо, ми хочемо знайти всі імена, що не мають 4 символів.
SELECT * FROM student_names WHERE name NOT LIKE '____'
Вихід:
ім'я |
---|
Анкіт |
Сміт |
Микита |
Мохіт |
Ви можете бачити у наведеному вище результаті, він повертає лише ті імена, що не мають 4 символів.
Використання MySQL LIKE із символом ESCAPE
Тут ми побачимо, як ми можемо використовувати символи ESCAPE разом із збігом шаблонів.
Припустимо, що в гіпотетичній ситуації ми маємо імена, які насправді містять символи% та _, і ми хочемо знайти ці імена, тоді нам насправді потрібно зіставити% & _. Цього можна досягти за допомогою символу втечі.
Примітка: Значення вхідного символу за замовчуванням -
Додайте деякі дані до таблиць студентських імен, що містять імена з символами% та _.
INSERT INTO student_names VALUES('Darre%n'),('Julia_Roberts'),('Dane_Sherman%');
Нижче наведено кілька прикладів, щоб краще це зрозуміти.
# 1) Знайдіть усі імена, які мають знак%.
SELECT * FROM student_names WHERE name LIKE '%\%%'
Вихід:
ім'я |
---|
Дарре% n |
Данець_Шерман% |
# два) Знайдіть усі імена, які мають знак _
SELECT * FROM student_names WHERE name LIKE '%\_%'
Вихід:
ім'я |
---|
Джулія_Робертс |
Данець_Шерман% |
В обох наведених вище прикладах ви можете бачити, що ми використовували символ втечі для позначення символів% та _ - тобто для відповідності самому символу% ми використовували символ втечі перед знаком% - тобто як '\%'
Використання символу втечі на власний вибір
Тепер спробуємо розширити попередній приклад.
MySQL дозволяє вказати власний символ ESCAPE, який MySQL повинен використовувати під час запуску пошуку за збігом шаблонів.
Спробуємо оновити символ 'Escape' до '!' Замість значення за замовчуванням ''
SELECT * FROM student_names WHERE name LIKE '%!_%' ESCAPE '!'
Вихід:
ім'я |
---|
Джулія_Робертс |
Данець_Шерман% |
У наведеному вище прикладі ми замінили символ втечі на '!' І використали те саме в збігу шаблонів '%! _%' - де ми хочемо відповідати символу '_' в назві.
Часті запитання
Q # 1) Що означає %% у SQL?
Відповідь: '%%' не збирається збігатися з чимось конкретним. Це еквівалентно лише наявності 1% символу. Якщо ви хочете зіставити сам символ «%» у значенні стовпця, ви можете використовувати його із символом екранування, значення якого за замовчуванням «.
Припустимо, ви хочете зіставити значення стовпця, що має символ '%', ви можете написати шаблон збігу як - ПОДОБАЄТЬСЯ '% %%' (зверніть увагу на додаткову зворотну скісну риску перед символом середнього відсотка (%).
Q # 2) Що таке підстановочний знак у MySQL?
Відповідь: MySQL LIKE Operator працює з двома символами підстановки в MySQL для досягнення різних способів узгодження шаблонів.
Це:
- % - Це відповідає будь-якій кількості символів (включаючи нуль)
- _ - Це відповідало б точно одному персонажу
Запитання №3) Як написати запит LIKE у MySQL?
Відповідь: LIKE - простий оператор, який зазвичай використовується разом із реченням WHERE у запиті SELECT. Він використовується для зіставлення значень стовпців із зазначеним шаблоном.
Приклад: Припустимо, є таблиця, яка містить дані про співробітників, і в ній є стовпець з назвою адреса, що містить номер будинку, назву вулиці тощо. Ви хочете дізнатись про всіх працівників, вулиця яких визначається як „Оксфордський провулок” як адреса.
Ми можемо використовувати оператор LIKE для написання такого запиту.
SELECT * FROM employee_details WHERE address LIKE '%Oxford Lane%'
Будь ласка, зверніть увагу, що рядкові шаблони чутливий до регістру під час зіставлення з вказаним виразом відповідності.
Q # 4) Як вказати іншого символу Escape разом із оператором LIKE?
Відповідь: MySQL надає спосіб вказати власний символ Escape, який замінить стандартний символ, тобто
Ось приклад, який міняв би символ втечі на '!' Для виконання запиту.
SELECT * FROM employee_details WHERE address LIKE '%!_%' ESCAPE '!'
У наведеному вище запиті ми згадали '!' Як символ втечі та використали те саме у виразі збігу.
Q # 5) Як зіставити фактичний символ% або _ за допомогою оператора LIKE?
Відповідь: Символи, такі як% та _, є спеціальними символами підстановки, які, коли насправді потрібно зіставити як частину рядка, слід уникати.
Екран за замовчуванням - '', який слід використовувати безпосередньо перед згадкою символу підстановки.
Припустимо, ми хочемо зіставити символ '_' із заданим значенням стовпця, тоді ми можемо записати вираз відповідності як - ПОДІБНО ДО '%\_%'
Висновок
У цьому підручнику ми дізналися про різні способи використання оператора LIKE (або запереченої версії, тобто НЕ ПОДОБАЄТЬСЯ).
що найкраще завантажувач mp3 для андроїд - -
Ми також обговорили підтримувані символи підстановки, тобто _ та%, і як їх можна уникнути, якщо вони повинні бути частиною рядка для пошуку / зіставлення.
Оператор LIKE - це потужна функціональність, що надається MySQL, і зазвичай використовується для фільтрації записів під час запитів великих наборів даних.
Рекомендована література
- Підручник із створення перегляду MySQL із прикладами коду
- MySQL UNION - Всебічний посібник із прикладами Union
- MySQL Створення таблиці Підручник з прикладами
- MySQL Insert Into Table - Вставте синтаксис заяви та приклади
- Синтаксис команд Unix Cat, варіанти з прикладами
- Підручник з регулярних виразів C #: що таке регулярний вираз на C #
- Підручник із регулярних виразів C ++: регулярні вирази на C ++ з прикладами
- Підручник з Java Regex із прикладами регулярних виразів