Выборка по заглавным буквам - MySQL
Формулировка задачи:
Есть таблица с полями id, name. Подскажите, пожалуйста, как сделать выборку по заглавным буквам:
Запрос "hp":
но он, естественно, выдает только
H
ewlettP
ackard,HP
Techp
ointHP
C Сейчас исполльзую вот такой запрос:SELECT * FROM brand WHERE name LIKE %$brandName% LIMIT 5
HP
Techp
ointHP
CРешение задачи: «Выборка по заглавным буквам»
textual
Листинг программы
$sqlQuery = "SELECT * FROM brand WHERE name REGEXP :brand LIMIT 5"; $stmt = $db->prepare($sqlQuery); if (strlen($brandName) == 2) { $stmt->bindValue(":brand" , "(^$brandName[0].*[ &_-]+$brandName[1].*)|(.*$brandName.*)", PDO::PARAM_STR); } else { $stmt->bindValue(":brand" , ".*$brandName.*", PDO::PARAM_STR); } $stmt->execute();
Объяснение кода листинга программы
- Создается SQL запрос для выборки данных из таблицы
brand
- Запрос содержит условие WHERE для фильтрации результатов по полю
name
- В запросе используется функция REGEXP для сопоставления шаблона с данными
- Параметр :brand используется для передачи значения в запрос
- Значение параметра :brand подготавливается с помощью функции bindValue
- Если длина значения $brandName равна 2, то используется сложный шаблон для сопоставления
- Если длина значения $brandName не равна 2, то используется простой шаблон для сопоставления
- Выполняется запрос с помощью функции execute
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д