Оператор PHP MySQL LIKE
Выбирайте и фильтруйте данные из базы данных MySQL с помощью оператора MySQL LIKE с использованием PHP в XAMPP
В этом руководстве мы обсудим, как выбрать данные из таблицы с помощью оператора MySQL LIKE и предложения WHERE вместе с командой SELECT в конкретной базе данных с использованием PHP в XAMPP.
Если вы еще не создали базу данных и таблицу, обратитесь к следующему руководству:
- Создание базы данных и таблицы MySQL с использованием PHP в XAMPP
В демонстрационных целях я создал таблицу с именем "sales" в базе данных MySQL под названием "my_company" со приведенной ниже схемой и записями.
Просмотр записей таблицы в базе данных MySQL
Внимание! В XAMPP имена базы данных и таблиц нечувствительны к регистру. Он будет рассматривать верхний/нижний регистр только как строчные.
Фильтрация данных из таблицы MySQL с помощью оператора LIKE
Оператор MySQL LIKE проверяет, соответствует ли определенная строка символов указанному шаблону.
Другими словами, LIKE — это оператор, применяемый к строковым значениям в столбце для получения значений на основе заданного условия выражения.
Мы указываем выражение после оператора LIKE. Выражение используется для сравнения строк в столбце. Если выражение присутствует в строке, оно будет отображено.
Поддерживаемые выражения приведены ниже:
%character
— возвращает значение из столбца, если оно заканчивается указанным символом.character%
— возвращает значение из столбца, если оно начинается с указанного символа.символ%символ
— возвращает значение из столбца, если оно начинается и заканчивается указанным символом.%sub-string%
— возвращает значение, если оно содержит заданную подстроку в любой позиции значения.character
__ (2 подчеркивания) — возвращает значение из столбца, если оно начинается с указанного символа и длина символа равна 3. Обратите внимание, что длина зависит от подчеркивания перед символом.__character
(2 подчеркивания) — возвращает значение из столбца, если оно заканчивается указанным символом и длина символа равна 3.
Синтаксис оператора MySQL LIKE:
SELECT column1,column2,.,column n from table_name WHERE column_name LIKE expression
Шаги
1. Укажите имя сервера (например, localhost), имя пользователя базы данных (например, root), пароль пользователя root и имя базы данных (например, my_company). Здесь пароль моего пользователя root пуст.
2. Установите соединение с помощью функции mysqli_connect().
3. Напишите SQL-запрос для фильтрации данных из базы данных MySQL с использованием предложения WHERE и оператора LIKE.
Код:
$query = "SELECT column1,…. from Sales where column_name LIKE expression";
4. Сохраните выбранные результаты в переменную с именем "final" с помощью функции mysqli_query()
. В качестве параметров он будет принимать соединение и запрос.
Код:
mysqli_query($connection, $query);
5. Получите строки одну за другой из переменной «final», используя функцию mysqli_num_rows()
. Затем получите результаты, пройдя через цикл while
, используя функцию mysqli_fetch_assoc()
.
Код:
if (mysqli_num_rows($final) > 0) {
//get the output of each row
while($i = mysqli_fetch_assoc($final)) {
echo $i["column1”],…………..;
}
} else {
echo "No results";
}
6. Наконец, мы закроем соединение с помощью функции mysqli_close()
.
Синтаксис:
mysqli_close($connection);
Теперь давайте напишем пример PHP-кода на основе описанных выше шагов.
PHP-код для выбора данных из базы данных MySQL с использованием оператора LIKE
Пример кода 1:
В этом примере мы выберем все столбцы из таблицы «Продажи», где значения в столбце имени
- начинается с буквы 'E',
- заканчивается на ,
- и содержит буквы 'gg'.
Создайте новый файл с именем select.php
в папке /htdocs
со следующим содержимым.
Внимание! Если вы используете Linux, папка htdocs будет находиться в каталоге /opt/lampp/
. Если вы используете Windows, htdocs обычно находится в папке C:\xampp\.
<?php
//specify the server name and here it is localhost
$server_name = "localhost";
//specify the username - here it is root
$user_name = "root";
//specify the password - it is empty
$password = "";
//specify the database name
$database_name = "my_company";
// Creating the connection by specifying the connection details
$connection = mysqli_connect($server_name, $user_name, $password,$database_name);
//select all columns such that name column starts with 'E'
$query = "SELECT * from sales where name like 'E%'";
#get the result
$final = mysqli_query($connection, $query);
if (mysqli_num_rows($final) > 0) {
//get the output of each row
while($i = mysqli_fetch_assoc($final)) {
//get all columns
echo "id: " . $i["id"]. " ----> name: " . $i["name"]." ----> count: " . $i["count"]. "<br>";
}
} else {
echo "No results";
}
//take a new line
echo "<br>";
echo "<br>";
//select all columns such that name column ends with 's'
$query1 = "SELECT * from sales where name like '%s'";
#get the result
$final1 = mysqli_query($connection, $query1);
if (mysqli_num_rows($final1) > 0) {
//get the output of each row
while($j = mysqli_fetch_assoc($final1)) {
//get all columns
echo "id: " . $j["id"]. " ----> name: " . $j["name"]." ----> count: " . $j["count"]. "<br>";
}
} else {
echo "No results";
}
//take a new line
echo "<br>";
echo "<br>";
//select all columns such that name column contains 'gg'
$query2 = "SELECT * from sales where name like '%gg%'";
#get the result
$final2 = mysqli_query($connection, $query2);
if (mysqli_num_rows($final2) > 0) {
//get the output of each row
while($k = mysqli_fetch_assoc($final2)) {
//get all columns
echo "id: " . $k["id"]. " ----> name: " . $k["name"]." ----> count: " . $k["count"]. "<br>";
}
} else {
echo "No results";
}
//close the connection
mysqli_close($connection);
?>
Откройте веб-браузер и укажите URL-адрес http://localhost/select.php.
Пример 1. Выбор данных из базы данных MySQL с использованием предложения WHERE и оператора LIKE
Пример кода 2:
В этом примере мы выберем все столбцы из таблицы «Продажи» и отфильтруем значения в столбце имени, которые начинаются только с «C» и заканчиваются на «s».
<?php
//specify the server name and here it is localhost
$server_name = "localhost";
//specify the username - here it is root
$user_name = "root";
//specify the password - it is empty
$password = "";
//specify the database name
$database_name = "my_company";
// Creating the connection by specifying the connection details
$connection = mysqli_connect($server_name, $user_name, $password, $database_name);
//select all columns such that name column starts with 'C' and ends with 's'
$query = "SELECT * from sales where name like 'C%s'";
#get the result
$final = mysqli_query($connection, $query);
if (mysqli_num_rows($final) > 0) {
//get the output of each row
while($i = mysqli_fetch_assoc($final)) {
//get all columns
echo "id: " . $i["id"]. " ----> name: " . $i["name"]." ----> count: " . $i["count"]. "<br>";
}
} else {
echo "No results";
}
//close the connection
mysqli_close($connection);
?>
Откройте веб-браузер и перейдите по URL-адресу http://localhost/select.php.
Пример 2. Выбор данных из базы данных MySQL с использованием предложения WHERE и оператора LIKE
Пример кода 3:
В этом примере мы выберем все столбцы из таблицы «Продажи», где значения в столбце имени,
- начните с 'C' и длину - 6 (Здесь нам нужно поставить 5 подчеркиваний после 'C'),
- заканчиваются на «s» и длину — 4 (Здесь перед «s» нужно поставить 3 подчеркивания).
<?php
//specify the server name and here it is localhost
$server_name = "localhost";
//specify the username - here it is root
$user_name = "root";
//specify the password - it is empty
$password = "";
//specify the database name
$database_name = "my_company";
// Creating the connection by specifying the connection details
$connection = mysqli_connect($server_name, $user_name, $password,$database_name);
// name starts with 'C' and length - 6
$query = "SELECT * from sales where name like 'C_____'";
#get the result
$final = mysqli_query($connection, $query);
if (mysqli_num_rows($final) > 0) {
//get the output of each row
while($i = mysqli_fetch_assoc($final)) {
//get all columns
echo "id: " . $i["id"]. " ----> name: " . $i["name"]." ----> count: " . $i["count"]. "<br>";
}
} else {
echo "No results";
}
//new line
echo "<br>";
echo "<br>";
// name ends with 's' and length - 4
$query1 = "SELECT * from sales where name like '___s'";
#get the result
$final1 = mysqli_query($connection, $query1);
if (mysqli_num_rows($final1) > 0) {
//get the output of each row
while($j = mysqli_fetch_assoc($final1)) {
//get all columns
echo "id: " . $j["id"]. " ----> name: " . $j["name"]." ----> count: " . $j["count"]. "<br>";
}
} else {
echo "No results";
}
//close the connection
mysqli_close($connection);
?>
Откройте веб-браузер и укажите URL-адрес http://localhost/select.php.
Пример 3. Выбор данных из базы данных MySQL с использованием предложения WHERE и оператора LIKE
Заключение
В этом руководстве мы обсудили, как выбрать определенный столбец или все столбцы из таблицы MySQL, указав выражение с помощью оператора LIKE с использованием PHP с тремя различными примерами.