Like sql php
SQL, LIKE оператор
Оператор SQL LIKE
Оператор Like используется в предложении WHERE для поиска заданного шаблона в столбце.
В сочетании с оператором LIKE используются два подстановочных знака:
- % — Знак процента представляет ноль, один или несколько символов
- _ — Знак подчеркивания представляет один символ
Примечание: MS Access использует вопросительный знак (?) вместо знака подчеркивания (_).
Знак процента и подчеркивание также могут быть использованы в комбинации!
LIKE Синтаксис
Совет: Можно также комбинировать любое количество условий с помощью операторов and или or.
Вот несколько примеров, демонстрирующих различные операторы LIKE с подстановочными знаками «%» и «_»:
LIKE Оператор | Описание |
---|---|
WHERE CustomerName LIKE ‘a%’ | Находит любые значения, которые начинаются с «a» |
WHERE CustomerName LIKE ‘%a’ | Находит любые значения, которые заканчиваются «a» |
WHERE CustomerName LIKE ‘%or%’ | Находит любые значения, которые имеют значение «or» в любом положении |
WHERE CustomerName LIKE ‘_r%’ | Находит все значения, которые имеют значение «r» во второй позиции |
WHERE CustomerName LIKE ‘a_%_%’ | Находит любые значения, которые начинаются с «a» и длиной не менее 3 символов |
WHERE ContactName LIKE ‘a%o’ | Находит любые значения, которые начинаются с «a» и заканчиваются на «o» |
Демонстрационная база данных
Ниже приведен выбор из таблицы «Customers» в образце базы данных Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Примеры в SQL
Следующая инструкция SQL выбирает всех клиентов с CustomerName, начинающейся с «a»:
Пример
Следующая инструкция SQL выбирает всех клиентов с CustomerName, заканчивающийся на «a»:
Пример
Следующая инструкция SQL выбирает всех клиентов с CustomerName, которые имеют «или» в любой позиции:
Пример
Следующая инструкция SQL выбирает всех клиентов с CustomerName, которые имеют «r» во второй позиции:
Пример
Следующая инструкция SQL выбирает всех клиентов с CustomerName, который начинается с «a» и длиной не менее 3 символов:
Пример
Следующая инструкция SQL выбирает всех клиентов с ContactName, который начинается с «a» и заканчивается на «o»:
Пример
Следующая инструкция SQL выбирает всех клиентов с CustomerName, который не начинается с «a»:
LIKE поиск по базе
В таблице имеется две строки и два столбца. Изображение:
Произвожу поиск по базе так:
Поиск в ADoquery, Delphi, поиск в базе данных
Доброго времени суток многоуважаемые пользователи данного сайта! Есть очень глупая проблема, с.
Поиск в базе данных (поиск далее)
Добрый вечер! Нужна ваша помощь. Делаю поиск по базе, использую компонент AdoTable. В базе есть.
Поиск по базе
Найти номер телефона сотрудника по его фамилии и по инициалам. с коментариями. помогите.
поиск в базе
имеется алгоритм $search_query = «SELECT * FROM news WHERE UPPER(news) LIKE.
В общем, похоже придется сделать через цикл.
1. Заносим каждое слово в массив
2. Через цикл, извлекаем по одному значению из получившегося массива и подставляем в SQL запрос.
3. Через цикл выводим найденные данные
Вот что получилось:
В этой статье:
http://www.php.su/articles/?cat=phpdb&page=015
говорится о том, что требуемые поля VARCHAR или (SMALLTEXT, MEDIUMTEXT и т.п.), в которых производится поиск, нужно сделать ключами FULLTEXT. Первый раз про такое слышу. Ребят, может в трех словах объясните как это сделать? У меня имеется такой запрос, на создание таблицы:
Спасибо. Отличные варианты. В интернете также попался такой вариант:
У меня еще один заключительный вопрос. Мы поставили на необходимые поля FULLTEXT. Теперь мы уже не используем LIKE, а используем к примеру, что-то наподобие этого:
Окей спасибо. Буду дерзать. А слова меньше трех символов, из строки я сразу выдираю. Пример:
А в принципе мне и нужен только поиск по тексту. Ничего страшного.
Добавлено через 1 час 40 минут
Ребят, выходит ошибка. Не пойму в чем дело. Что-то делаю не так. Создал таблицу таким образом:
MySQL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
23.03.2013, 01:26 | ||||||||||||||||||||||||||||
23.03.2013, 01:26 | ||||||||||||||||||||||||||||
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. поиск по базе поиск по базе Поиск по базе SQL Оператор LIKESQL LIKEОператор LIKE используется в предложении WHERE для поиска указанного шаблона в столбце. Есть два подстановочных знака, часто используемых в сочетании с оператором LIKE:
Примечание: MS Access использует звездочку (*) вместо знака процента (%) и вопросительный знак (?) вместо подчеркивания (_). Знак процента и подчеркивание также могут использоваться в комбинациях! Синтаксис LIKEСовет: Вы также можете комбинировать любое количество условий с помощью операторов AND или OR. Вот несколько примеров, показывающих различные операторы LIKE с подстановочными знаками ‘%’ и ‘_’:
Демо база данныхНиже приведен выбор из таблицы «Customers» в образце базы данных Northwind:
| Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany | ||||||||||||||||||||||
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico | ||||||||||||||||||||||
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico | ||||||||||||||||||||||
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK | ||||||||||||||||||||||
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Примеры SQL LIKE
Следующая инструкция SQL выбирает всех клиентов с именем клиента, начинающимся с «a»:
Пример
Следующая инструкция SQL выбирает всех клиентов с именем клиента, оканчивающимся на «a»:
Пример
Следующая инструкция SQL выбирает всех клиентов с именем клиента, которые имеют «or» в любой позиции:
Пример
Следующая инструкция SQL выбирает всех клиентов с именем клиента, которые имеют «r» во второй позиции:
Пример
Следующая инструкция SQL выбирает всех клиентов с именем клиента, которое начинается с буквы «a» и имеет длину не менее 3 символов:
Пример
Следующая инструкция SQL выбирает всех клиентов с именем контакта, которое начинается с «a» и заканчивается на «o»
Пример
Следующая инструкция SQL выбирает всех клиентов с именем клиента, которое не начинается с «a»:
LIKE, REGEXP. Вывод данных по шаблону (маске) в MySQL
Оператор LIKE
LIKE используется для поиска записей, данные которых совпадают с заданным шаблоном.
Для создания шаблона используются два специальных символа.
- % — представляет собой неопределенное количество любых символов.
- _ — представляет только один любой символ.
Синтаксис LIKE
mysql> SELECT column1, column2, . , columnN
-> FROM table_name
-> WHERE column LIKE ‘pattern’ ;
В таблице ниже представлены несколько возможных вариантов шаблона оператора LIKE .
Шаблон LIKE | Описание |
---|---|
LIKE ‘a%’ | Значение начинается с символа «a» |
LIKE ‘%a’ | Значение заканчивается на символ «a» |
LIKE ‘%a%’ | Значение имеет символ «a» в любом месте |
LIKE ‘_a%’ | Значение имеет символ «a» на втором месте |
LIKE ‘a__’ | Значение состоит из 3 символов, первый «a» |
LIKE ‘a%d’ | Значение начинается с символа «a» и заканчивается на символ «d» |
Рассмотрим несколько примеров.
Для всех примеров будем использовать условную базу данных книжного магазина — Bookstore и таблицу books.
mysql> USE Bookstore;
Database changed
mysql> SELECT >FROM books;
+—-+—————————+———————+———+—————-+
| id | title | author | price | shelf_position |
+—-+—————————+———————+———+—————-+
| 1 | Дубровский (Акция) | Александр Пушкин | 230.00 | 023A12 |
| 2 | Нос (Акция) | Николай Гоголь | 255.20 | 003C05 |
| 3 | Мастер и Маргарита | Михаил Булгаков | 263.00 | 004D11 |
| 4 | Мёртвые души (Акция) | Николай Гоголь | 173.00 | 007A15 |
| 5 | Преступление и наказание | Фёдор Достоевский | 245.00 | 004E08 |
| 6 | Война и мир | Лев Толстой | 341.00 | 020F01 |
| 7 | Анна Каренина | Лев Толстой | 346.00 | 004D05 |
| 8 | Отцы и дети | Иван Тургенев | 371.00 | 001H10 |
| 9 | Собачье сердце | Михаил Булгаков | 232.00 | 006A19 |
| 10 | Бесы | Фёдор Достоевский | 212.00 | 028A03 |
+—-+—————————+———————+———+—————-+
10 rows in set (0.00 sec)
Найдем все записи с книгами, в названии которых есть слово «Акция».
mysql> SELECT id, title, author, price, shelf_position
-> FROM books
-> WHERE title LIKE ‘%Акция%’ ;
+—-+—————————+———————+———+—————-+
| id | title | author | price | shelf_position |
+—-+—————————+———————+———+—————-+
| 1 | Дубровский (Акция) | Александр Пушкин | 230.00 | 023A12 |
| 2 | Нос (Акция) | Николай Гоголь | 255.20 | 003C05 |
| 4 | Мёртвые души (Акция) | Николай Гоголь | 173.00 | 007A15 |
+—-+—————————+———————+———+—————-+
3 rows in set (0.00 sec)
В колонке shelf_position представлен код местоположения книги, например код — 004E08 означает: 4 ряд, шкаф Е, полка 8. Найдем все записи с книгами, которые хранятся на полках шкафа D на 4 ряду.
LIKE можно использовать с логическим оператором NOT , и находить записи, которые НЕ соответствуют заданному шаблону.
mysql> SELECT id, title, author, price, shelf_position
-> FROM books
-> WHERE author NOT LIKE ‘Николай%’ ;
+—-+———————————+————————————+———+—————-+
| id | title | author | price | shelf_position |
+—-+———————————+————————————+———+—————-+
| 1 | Дубровский (Акция) | Александр Пушкин | 230.00 | 023A12 |
| 3 | Мастер и Маргарита | Михаил Булгаков | 263.00 | 004D11 |
| 5 | Преступление и наказание | Фёдор Достоевский | 245.00 | 004E08 |
| 6 | Война и мир | Лев Толстой | 341.00 | 020F01 |
| 7 | Анна Каренина | Лев Толстой | 346.00 | 004D05 |
| 8 | Отцы и дети | Иван Тургенев | 371.00 | 001H10 |
| 9 | Собачье сердце | Михаил Булгаков | 232.00 | 006A19 |
| 10 | Бесы | Фёдор Достоевский | 212.00 | 028A03 |
+—-+———————————+————————————+———+—————-+
10 rows in set (0.00 sec)
Оператор REGEXP
Поиск значений по шаблонам также возможен с помощью регулярных выражений, используя оператор REGEXP .
RLIKE является синонимом для оператора REGEXP .
Синтаксис REGEXP
mysql> SELECT column1, column2, . , columnN
-> FROM table_name
-> WHERE column REGEXP ‘pattern’ ;
Ниже представлены несколько примеров использования регулярных выражений в MySQL.
Найдем все записи книг, имя автора которых начинается с букв «А» или «Л».
mysql> SELECT id, title, author, price, shelf_position
-> FROM books
-> WHERE author REGEXP ‘^(А|Л)’ ;
+—-+—————————+———————+———+—————-+
| id | title | author | price | shelf_position |
+—-+—————————+———————+———+—————-+
| 1 | Дубровский (Акция) | Александр Пушкин | 230.00 | 023A12 |
| 6 | Война и мир | Лев Толстой | 341.00 | 020F01 |
| 7 | Анна Каренина | Лев Толстой | 346.00 | 004D05 |
+—-+—————————+———————+———+—————-+
3 rows in set (0.00 sec)
Найдем все книги, в названии которых есть слово «война».
Посмотрим какие книги находятся в шкафах на 004 ряду.
mysql> SELECT id, title, author, price, shelf_position
-> FROM books
-> WHERE shelf_position REGEXP ‘^004.*’ ;
+—-+—————————+———————+———+—————-+
| id | title | author | price | shelf_position |
+—-+—————————+———————+———+—————-+
| 3 | Мастер и Маргарита | Михаил Булгаков | 263.00 | 004D11 |
| 5 | Преступление и наказание | Фёдор Достоевский | 245.00 | 004E08 |
| 7 | Анна Каренина | Лев Толстой | 346.00 | 004D05 |
+—-+—————————+———————+———+—————-+
3 rows in set (0.00 sec)
Понравилась статья? Расскажите о ней друзьям!
Adblockdetector