SQL маски могут быть использованы при поиске данных.
SQL маски могут заменить один или более символов при поиске данных в базе данных.
SQL маски должны быть использованы с оператором SQL LIKE.
В SQL доступны следующие маски:
| Маска | Описание |
|---|---|
| % | Означает ноль или более символов |
| _ | Означает один символ |
| [charlist] | Любые символы из указанных |
| [^charlist]
или [!charlist] |
Любые символы кроме указанных |
Пример использование масок в SQL
Есть таблица "Persons":
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Использование %
Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого начинается с буквы "sa" из таблицы выше.
Для этого используем такой запрос:
Результат запроса:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого содержит в себе буквы "nes". Не важно, в каком месте будут находиться данные символы, в начале или конце слова.
Для этого используем такой запрос:
Результат запроса:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
Использование _
Теперь мы хотим выбрать всех лиц, которые имеют фамилию, содержащую буквы "la" из таблицы выше.
Для этого используем такой запрос:
Результат запроса:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
Теперь мы хотим выбрать лиц с фамилией, которая начинается с буквы "S", после чего любой символ, а затем "end", после чего любой символ, за которым следует "on"из таблицы "Persons".
Для этого используем такой запрос:
Результат запроса:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
Испьзование [charlist]
Теперь мы хотим выбрать лиц с фамилией, которая начинается с "b" или "s" или "p"из таблицы "Persons".
Для этого используем такой запрос:
Результат запроса:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Теперь мы хотим выбрать лиц с фамилией, которая не начинается с "b" или "s" или "p"из таблицы "Persons".
Для этого используем такой запрос:
Результат запроса:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
SQL Маски





Комментарии
SELECT * FROM Persons
WHERE LastName LIKE '[!bsp]%'
т.е. она воспринимает знак "!" как просто знак. Естественно для выборки лиц с фамилией, которая не начинается с "b" или "s" или "p"из таблицы "Persons" работает такая конструкция
SELECT * FROM Persons
WHERE LastName NOT LIKE '[bsp]%' Цитировать
SELECT * FROM Persons
WHERE LastName NOT LIKE '[bsp]' а, знак ! принимает как простой символ
На Server Management Studio 2005 работает )))
$query = "SELECT checkin, checkout FROM calendar WHERE id = '$villa' AND (checkin LIKE "'$year_$month%'" OR checkout LIKE "'$year_$month%'")";
Данные в БД хранятся в виде
checkin checkout
2012-01-04 2012-01-06
$year $month переменные из формы.
Спасибо за внимание. Цитировать