example-like- php mysql examples | w3resource

Оператор MySQL LIKE

Оператор MySQL LIKE проверяет, соответствует ли конкретная символьная строка указанному шаблону.

expr LIKE pat [ESCAPE 'escape_char']
  • Сопоставление с образцом с использованием простого сравнения регулярных выражений SQL. Возвращает 1 (ИСТИНА) или 0 (ЛОЖЬ). Если expr или pat имеют значение NULL, результат равен NULL.
  • Шаблон не обязательно должен быть литеральной строкой. Например, его можно указать как строковое выражение или столбец таблицы.
  • В соответствии со стандартом SQL, LIKE выполняет сопоставление для каждого символа, поэтому он может давать результаты, отличные от оператора сравнения =.
  • Оператор LIKE использует WILDCARDS (то есть%, _) для сопоставления с шаблоном. Это очень полезно для проверки наличия в записях определенного символа или строки.

% используется для соответствия любому количеству символов, даже нулю символов.
_ используется для соответствия ровно одному символу.

Чтобы проверить наличие буквенных символов подстановочного знака, перед ним должен быть escape-символ. Если вы не укажете символ ESCAPE, подразумевается «/».
/% используется для соответствия одному символу «%».
/ _ Соответствует одному символу «_»

Версия MySQL: 5.6

Пример: оператор MySQL LIKE

Следующая инструкция MySQL сканирует всю таблицу авторов, чтобы найти любое имя автора, имя которого начинается с символа «W», за которым следуют любые символы.

SELECT aut_name, country FROM author WHERE aut_name LIKE 'W%'; 
mysql> mysql> SELECT aut_name, страна -> ОТ автора -> ГДЕ aut_name LIKE 'W%'; + ----------------- + --------- + | aut_name | страна | + ----------------- + --------- + | Уильям Нортон | Великобритания | | Уильям Моэм | Канада | | Уильям Энтони | Великобритания | + ----------------- + --------- + 3 ряда в наборе (0,05 сек)
         

List of authors whose name starts with 'w', along with their country:

query('SELECT aut_name, country FROM author WHERE aut_name LIKE "W%"') as $row) < echo ""; echo ""; echo ""; echo ""; > ?>
PublisherCountry
" . $row['aut_name'] . "" . $row['country'] . "
            Publisher Country     %> catch (Exception ex) < out.println("Can’t connect to database."); >%>   

Пример: оператор MySQL LIKE, соответствующий концу

Следующая инструкция MySQL сканирует всю таблицу авторов, чтобы найти любого автора, имя которого заканчивается строкой ‘on’.

SELECT aut_name, country FROM author WHERE aut_name LIKE '%on'; 
mysql> SELECT aut_name, страна -> ОТ автора -> ГДЕ aut_name LIKE '% on'; + ---------------- + --------- + | aut_name | страна | + ---------------- + --------- + | Уильям Нортон | Великобритания | | Томас Мертон | США | | Пирс Гибсон | Великобритания | | Джозеф Мильтон | США | + ---------------- + --------- + 4 ряда в наборе (0,00 сек)

Пример: оператор MySQL LIKE, соответствующий строке

Следующая инструкция MySQL сканирует всю таблицу авторов, чтобы найти любого автора, в имени которого есть строка «an». Имя автора хранится в столбце aut_name.

SELECT aut_name, country FROM author WHERE aut_name LIKE '%an%'; 
mysql> SELECT aut_name, страна -> ОТ автора -> ГДЕ aut_name LIKE '% an%'; + ---------------------- + ----------- + | aut_name | страна | + ---------------------- + ----------- + | Уильям Энтони | Великобритания | | С.Б.Сваминатан | Индия | | Томас Морган | Германия | | Джон Бежеман Хантер | Австралия | | Эван Хайек | Канада | | Батлер Андре | США | + ---------------------- + ----------- + 6 рядов в наборе (0,00 сек)

Пример: оператор MySQL LIKE, соответствующий указанной строке

Читайте также:  Python requests accept header

Следующее утверждение MySQL ищет всех авторов, чьи родные города, такие как «Лондон», «Лэндон» и т. Д., Подстановочный знак подчеркивания используется для упоминания одного символа.

SELECT aut_name, country,home_city FROM author WHERE home_city LIKE 'L_n_on'; 
mysql> ВЫБРАТЬ aut_name, страну, home_city -> ОТ автора -> ГДЕ home_city LIKE 'L_n_on'; + -------------- + --------- + ----------- + | aut_name | страна | home_city | + -------------- + --------- + ----------- + | Пирс Гибсон | Великобритания | Лондон | | Си Джей Уайльд | Великобритания | Лондон | + -------------- + --------- + ----------- + 2 ряда в наборе (0,00 сек)

Пример: оператор MySQL LIKE, соответствующий управляющему символу

Для поиска символа подстановки или комбинации символа подстановки и любого другого символа символу подстановки должен предшествовать строка ESCAPE. В MySQL строка ESCAPE по умолчанию — «/». Следующая инструкция MySQL возвращает те записи, чьи isbn_no содержат «_16».

SELECT book_name,isbn_no,no_page,book_price FROM book_mast WHERE isbn_no LIKE '%\_16%'; 
mysql> SELECT book_name, isbn_no, no_page, book_price -> ОТ book_mast -> ГДЕ isbn_no НРАВИТСЯ "% / _ 16%"; + --------------------------------- + ------------- + - -------- + ------------ + | book_name | isbn_no | no_page | book_price | + --------------------------------- + ------------- + - -------- + ------------ + | Сети и Телекоммуникации | 00009790_16 | 95 | 45,00 | + --------------------------------- + ------------- + - -------- + ------------ + 1 ряд в наборе (0,00 сек)

Пример: оператор MySQL LIKE, соответствующий начальной и конечной строке

Подстановочные знаки также можно использовать в середине шаблона поиска. Следующая инструкция MySQL найдет всех авторов, чьи имена начинаются с ‘t’ и заканчиваются на ‘n’.

SELECT aut_name, country FROM author WHERE aut_name LIKE 't%n'; 
mysql> SELECT aut_name, страна -> ОТ автора -> ГДЕ aut_name LIKE 't% n'; + --------------- + --------- + | aut_name | страна | + --------------- + --------- + | Томас Морган | Германия | | Томас Мертон | США | + --------------- + --------- + 2 ряда в наборе (0,00 сек)

Слайд-шоу функции сравнения MySQL и операторов

«MySQL

Предыдущий: Меньше чем оператор ( <)
Далее: НЕ МЕЖДУ И

Читайте также:  Nginx php fpm mysql apache

Источник

PDO LIKE

Summary: in this tutorial, you’ll learn how to use PDO to execute a query with the LIKE operator.

Introduction to the SQL LIKE operator

The LIKE operator returns true if a character string matches a specified pattern. Typically, a pattern includes wildcard characters like:

For example, the %er% will match any string that contains the string er , e.g., peter , understand , etc.

Typically, you use the LIKE operator in the WHERE clause of the SELECT , UPDATE , and DELETE statement.

Execute a query that contains the LIKE operator in PDO

To execute a query that contains a LIKE operator in PDO, you need to construct the pattern upfront.

For example, to select the book with titles that contain the string ‘es, you first construct a SELECT statement like this:

$sql = 'SELECT book_id, title FROM books WHERE title LIKE :pattern';Code language: PHP (php)

And then bind the string ‘%es%’ to the prepared statement.

The following example illustrates how to execute a query that includes the LIKE operator:

 /** * Find books by title based on a pattern */ function find_book_by_title(\PDO $pdo, string $keyword): array < $pattern = '%' . $keyword . '%'; $sql = 'SELECT book_id, title FROM books WHERE title LIKE :pattern'; $statement = $pdo->prepare($sql); $statement->execute([':pattern' => $pattern]); return $statement->fetchAll(PDO::FETCH_ASSOC); > // connect to the database $pdo = require 'connect.php'; // find books with the title matches 'es' $books = find_book_by_title($pdo, 'es'); foreach ($books as $book) < echo $book['title'] . '
'
; >
Code language: PHP (php)

The function find_book_by_title() returns the books with the title that matches with the $keyword .

First, make the pattern by adding the wildcard characters to the beginning and end of the $keyword :

$pattern = '%' . $keyword . '%';Code language: PHP (php)

Second, construct an SQL statement that contains a LIKE operator in the WHERE clause:

$sql = 'SELECT book_id, title FROM books WHERE title LIKE :pattern';Code language: PHP (php)

Third, create a prepared statement:

$statement = $pdo->prepare($sql);Code language: PHP (php)

After that, execute the statement with the value that comes from the pattern:

$statement->execute([':pattern' => $pattern]);Code language: PHP (php)

Finally, return all rows from the result set by using the fetchAll() method:

return $statement->fetchAll(PDO::FETCH_ASSOC);Code language: PHP (php)

The following code find books with the title contains the keyword ‘es’ :

// connect to the database $pdo = require 'connect.php'; // find books with the title matches 'es' $books = find_book_by_title($pdo, 'es'); foreach ($books as $book) < echo $book['title'] . '
'
; >
Code language: PHP (php)
Marcus Makes a Movie Box of ButterfliesCode language: PHP (php)

Summary

Источник

MySQL LIKE + php sprintf

To print the % character you need to escape it with itself. Therefore the first two %% will print the % character, while the third one is for the type specifier %s . You need a double %% at the end as well.

$test = sprintf("SELECT * FROM `table` WHERE `text` LIKE '%%%s%%'", mysql_real_escape_string('test')); 

In sprintf , if you want to get a % sign, you have to insert %% . So it’s %% for the first wildcard % , %s for the string itself and %% for the last wildcard % .

You need to escape the percent signs with a percent sign %% .

$test = sprintf("SELECT * FROM `table` WHERE `text` LIKE '%%%s%%'", mysql_real_escape_string('test')); echo $test; 

You’re jumbling contexts. For consistency, put the things that aren’t inside the SQL single quotes outside of the sprintf() format string:

$test = sprintf( "SELECT * FROM `table` WHERE" . "`xt` LIKE '%s'", "%" . mysql_real_escape_string("test") . "%" ); 
$test = "SELECT * FROM `table` WHERE `text` LIKE '%s%'" . mysql_real_escape_string('test'); echo $test; 

This question is in a collective: a subcommunity defined by tags with relevant content and experts.

Linked

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.26.43546

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Оцените статью