Поиск по сайту:

Оператор 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 с тремя различными примерами.

Статьи по данной тематике