Количество записей по образцу

Есть код, выдающий общее количество записей в базе:

$sql = "SELECT * FROM lekarstvo";
if($result = mysqli_query($conn, $sql)){ 
$rowsCount = mysqli_num_rows($result); // количество полученных строк
echo "<p>Получено оценок всего: $rowsCount</p>";

   mysqli_free_result($result);
   } else{
echo "Ошибка: " . mysqli_error($conn);
}

Мне нужно, чтобы можно было получить количество записей по образцу. Например, Спасибо, или Хорошо и т.д. Каким должен быть код?


Ответы (1 шт):

Автор решения: Михаил Ребров

для определения соответствия строки шаблону в SQL используется функция LIKE

Также для того чтобы не учитывать регистр букв - приведем значение нужного поля к нижнему регистру с помощью функции LOWER

Запрос будет выглядеть следующим образом:

SELECT * FROM lekarstvo WHERE LOWER(ball) LIKE '%отлично%'

Замечание:
т.к. значение поля приведено к нижнему регистру - в шаблоне строка так же должна быть в нижнем регистре, в противном случае функция гарантировано не найдет совпадений

и в коде

$sql = "SELECT * FROM lekarstvo WHERE LOWER(ball) LIKE '%отлично%';";
if($result = mysqli_query($conn, $sql)){ 
    $rowsCount = mysqli_num_rows($result); // количество полученных строк
    echo "<p>Получено оценок всего: $rowsCount</p>";

    mysqli_free_result($result);
} else{
    echo "Ошибка: " . mysqli_error($conn);
}

Имеем таблицу

введите сюда описание изображения

Результат фильтрации в бд

введите сюда описание изображения

Результат выполнения скрипта

введите сюда описание изображения

→ Ссылка