Як відомо бази даних MySQL здатні зберігати дані, які нам подаються у вигляді таблиць. Іноді необхідно здійснити пошук деякого значення в записах по конкретному полю таблиці. MySQL має ряд можливостей пошуку потрібних значень серед записів. Розглянемо один з найпоширеніших операторів пошуку — LIKE, з допомогою якого можна проводити пошук по базі деякого значення. Варто звернути увагу на те, що оператор справно виконує пошук тільки по полях, які мають тип VARCHAR або CHAR. Це так само накладає деякі обмеження. Тим не менш, при належному підході можна отримати хороший результат.

Давайте розглянемо приклад. Припустимо, у нас є таблиця під назвою posts з записами. Потрібне нам поле має ім’я name, яке має тип VARCHAR відповідно. Необхідно зробити пошук по цьому полю, і спробувати знайти запис, яка починається з ключового слова. В якості ключового слова візьмемо слово woofer.

Запит буде такий:

SELECT `id` FROM `posts` WHERE `name` LIKE ‘woofer%’;

В результаті виконання запиту буде виконаний пошук запису по полю name, які починаються з ключового слова woofer, і у випадку успіху будуть обрані id записів.
Розберемо докладніше. Перший оператор SELECT – оператор означає, що виробляється вибірка, поля id.
FROM `posts` — вибірка буде з таблиці posts. Далі йде оператор WHERE, після якого прописана умова, згідно з яким і буде здійснюватися вибірка з таблиці бази даних. В умові сказано, що по полю name необхідно провести пошук (оператор LIKE) значення woofer. Знак % після ключового слова означає, що за ключовим словом woofer може послідувати не певну кількість символів. Згідно з умовою нашого запиту, буде проводитися пошук всіх входжень рядків, що починаються з ключового слова woofer, після якого можуть послідувати інші комбінації символів.

Так само є можливість задати конкретне кількість символів, що можуть йти після ключового слова. Для цього замість знака % необхідно використовувати знак «_». Наприклад, нам необхідно вибрати з таблиці записи, що починається з символів woo, і в цілому слово має складатися з 6-ти символів:

SELECT `id` FROM `posts` WHERE `name` LIKE ‘woo___’;

Даний запит здійснить вибірку записів, у яких в полі name є слово, яке починається з ключових символів woo, і в цілому складається з 6-ти символів. Наявність одного символу «_» вказує на один символ.

Розглянемо варіант пошуку з додатковою умовою, на практиці може зустрічатися досить часто. Спочатку постановка завдання. Наприклад, є таблиця з користувачами t_users, в даній таблиці є поля потрібні для запиту: firstname, lastname, active. Стоїть завдання провести пошук користувача з двох полів firstname і lastname, за умови, що значення поля active дорівнює 1.

SELECT * FROM t_users WHERE (firstname LIKE ‘%this%’ OR lastname LIKE ‘%that%’) AND active=1;

У місці, де знаходяться this та that, слід підставити свої значення.

Додав: htmaker, 15.05.2014 р.
(1 голосів, середній: 5,00 з 5)

Завантаження…

Діліться з друзями:

См. також:


Змінюємо пароль root в MySQL 5.7
Рубрика: Linux, MySQL

Виправлення помилок у базі MySQL
Рубрика: MySQL

Відновлення пароля root в MySQL
Рубрика: MySQL

Утиліта Mytop для MySQL
Рубрика: Linux, MySQL

Кількість запитів до MySQL в режимі реального часу
Рубрика: MySQL

Як дізнатися час виконання MySQL запиту?
Рубрика: MySQL

Оптимізація MySQL (просто про складному)
Рубрика: MySQL

Повнотекстовий індекс: Full text index
Рубрика: MySQL

Вставлення стовпців: ALTER TABLE ADD
Рубрика: MySQL