Oc-windows.ru

IT Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1

Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico4

Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Примеры в SQL

Следующая инструкция SQL выбирает всех клиентов с CustomerName, начинающейся с «a»:

Пример

Следующая инструкция SQL выбирает всех клиентов с CustomerName, заканчивающийся на «a»:

Пример

Следующая инструкция SQL выбирает всех клиентов с CustomerName, которые имеют «или» в любой позиции:

Пример

Следующая инструкция SQL выбирает всех клиентов с CustomerName, которые имеют «r» во второй позиции:

Пример

Следующая инструкция SQL выбирает всех клиентов с CustomerName, который начинается с «a» и длиной не менее 3 символов:

Пример

Следующая инструкция SQL выбирает всех клиентов с ContactName, который начинается с «a» и заканчивается на «o»:

Пример

Следующая инструкция SQL выбирает всех клиентов с CustomerName, который не начинается с «a»:

LIKE поиск по базе

В таблице имеется две строки и два столбца. Изображение:

Произвожу поиск по базе так:

19.03.2013, 19:11

Поиск в ADoquery, Delphi, поиск в базе данных
Доброго времени суток многоуважаемые пользователи данного сайта! Есть очень глупая проблема, с.

Поиск в базе данных (поиск далее)
Добрый вечер! Нужна ваша помощь. Делаю поиск по базе, использую компонент AdoTable. В базе есть.

Поиск по базе
Найти номер телефона сотрудника по его фамилии и по инициалам. с коментариями. помогите.

поиск в базе
имеется алгоритм $search_query = «SELECT * FROM news WHERE UPPER(news) LIKE.

19.03.2013, 21:59 [ТС]2

В общем, похоже придется сделать через цикл.
1. Заносим каждое слово в массив
2. Через цикл, извлекаем по одному значению из получившегося массива и подставляем в SQL запрос.
3. Через цикл выводим найденные данные

Вот что получилось:

19.03.2013, 22:02319.03.2013, 22:16 [ТС]419.03.2013, 22:23520.03.2013, 17:38 [ТС]621.03.2013, 13:03721.03.2013, 23:59 [ТС]8

В этой статье:
http://www.php.su/articles/?cat=phpdb&page=015
говорится о том, что требуемые поля VARCHAR или (SMALLTEXT, MEDIUMTEXT и т.п.), в которых производится поиск, нужно сделать ключами FULLTEXT. Первый раз про такое слышу. Ребят, может в трех словах объясните как это сделать? У меня имеется такой запрос, на создание таблицы:

22.03.2013, 00:08922.03.2013, 00:27 [ТС]1022.03.2013, 00:311122.03.2013, 01:09 [ТС]12

Спасибо. Отличные варианты. В интернете также попался такой вариант:

У меня еще один заключительный вопрос. Мы поставили на необходимые поля FULLTEXT. Теперь мы уже не используем LIKE, а используем к примеру, что-то наподобие этого:

22.03.2013, 01:111322.03.2013, 01:18 [ТС]14

Окей спасибо. Буду дерзать. А слова меньше трех символов, из строки я сразу выдираю. Пример:

22.03.2013, 01:221523.03.2013, 01:26 [ТС]16

А в принципе мне и нужен только поиск по тексту. Ничего страшного.

Добавлено через 1 час 40 минут
Ребят, выходит ошибка. Не пойму в чем дело. Что-то делаю не так. Создал таблицу таким образом:

Ищу данные в ней, таким образом:

При поиске, у меня выходят даже те результаты, где нет совпадений по искомой сроке. В чем может быть дело?

Добавлено через 22 часа 20 минут
Всем спасибо. С поиском разобрался. Правильный запрос, должен выглядеть так:

MySQL

текстовую строку $s_text, заранее надо подготовить так:

MySQL
23.03.2013, 01:26
23.03.2013, 01:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Поиск по базе
Дайте пожалуйста исходник для поиска по всей таблице DBGrid или по определённому столбцу.

поиск по базе
необходимо командой @DbLookup вытащить из текущей базы данных из view «Default» все значения.

поиск по базе
помогите сделать поиск форму я сделал нужно чтобы при вводе в верхнее поле в список выводились все.

Поиск по базе
Добрый день, форумчане. Вобщем проблема такая, нужно реализовать поиск по строкам в базе данных, но.

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» и заканчиваются «о»

Демо база данных

Ниже приведен выбор из таблицы «Customers» в образце базы данных Northwind:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1

Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4

Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Примеры 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)

Понравилась статья? Расскажите о ней друзьям!

Читать еще:  Php sql query
Ссылка на основную публикацию
Adblock
detector
×
×