Введение в программирование на PHP5

Предложение WHERE


В обоих приведенных выше случаях из таблицы извлекаются все записи. Различаются только поля, которые составляют запись. Однако могут быть ситуации, когда не требуется извлекать все записи из таблицы. Может быть желательно выбрать только те записи, которые удовлетворяют определенному критерию. Для этих целей оператор SELECT предоставляет дополнительное предложение WHERE.

За ключевым словом WHERE следует один или несколько критериев выбора. Распространенный способ использования этого свойства состоит в проверке равенства, то есть поиска совпадающего значения в одном из полей записи. Например, если множество записей заказчиков обрабатывается на основе штата, в котором они расположены, то может быть желательно выбирать только те записи, где поле State содержит значение "GA". Для этого можно использовать оператор SQL,

SELECT * FROM Customers WHERE State='GA'

а система управления базой данных предоставит только те записи, которые имеют совпадающий код штата. Фактически для определения критерия выбора можно выбрать любой из обычный операторов сравнения

= (равно)
<> (не равно)
< (меньше)
> (больше)
<= (меньше или равно)
=> (равно или больше)

Кроме того, можно объединять критерии, используя логические операторы AND, OR и NOT для расширения или сокращения области выбора:

SELECT * FROM Customers WHERE State='GA' OR State='KY'

Отметим в этих примерах, что значения критерия выбора заключаются в одиночные кавычки (апострофы). При любом поиске в текстовых полях базы данных значение критерия должно заключаться в одиночные кавычки (WHERE State = 'GA'). Если тестируется числовое поле, значение данных в кавычки не заключается (WHERE Number > 10). Если тестируется поле даты/времени, то значение критерия окружается символами # (WHERE TheDate > #1/1/01#).


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

Можно, однако, использовать для идентификации записи любые принятые условные операторы:

= (равно)
<> (не равно)
< (меньше)
> (больше)
<= (меньше или равно)
=> (равно или больше)

Кроме того, можно объединять различные проверки с помощью логических операторов AND, OR и NOT для расширения или сужения области выбора:

UPDATE Products SET ItemQuantity = 0 WHERE ItemQuantity < 10 AND NOT ItemType = 'Software'

В этом случае может обновляться более одной записи. Если предложение WHERE не включено в оператор, то все записи в таблице, имеющие указанные поля, будут изменены.

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

Как и в случае операторов SELECT, INSERT и DELETE, оператор UPDATE создается обычно в сценарии с помощью объединения литеральных строк и переменных.

SQLString = "UPDATE Products SET ItemQty = 0 WHERE ItemQuantity < $TheQuantity AND NOT ItemType = '$TheType &'"

Этот код разрешается в оператор UPDATE следующего вида:

SQLString = "UPDATE Products SET ItemQty = 0 WHERE ItemQuantity < 10 AND NOT ItemType = 'Software'"




В обоих приведенных выше случаях из таблицы извлекаются все записи. Различаются только поля, которые составляют запись. Однако могут быть ситуации, когда не требуется извлекать все записи из таблицы. Может быть желательно выбрать только те записи, которые удовлетворяют определенному критерию. Для этих целей оператор SELECT предоставляет дополнительное предложение WHERE.

За ключевым словом WHERE следует один или несколько критериев выбора. Распространенный способ использования этого свойства состоит в проверке равенства, то есть поиска совпадающего значения в одном из полей записи. Например, если множество записей заказчиков обрабатывается на основе штата, в котором они расположены, то может быть желательно выбирать только те записи, где поле State содержит значение "GA". Для этого можно использовать оператор SQL,

SELECT * FROM Customers WHERE State='GA'

а система управления базой данных предоставит только те записи, которые имеют совпадающий код штата. Фактически для определения критерия выбора можно выбрать любой из обычный операторов сравнения

= (равно)
<> (не равно)
< (меньше)
> (больше)
<= (меньше или равно)
=> (равно или больше)

Кроме того, можно объединять критерии, используя логические операторы AND, OR и NOT для расширения или сокращения области выбора:

SELECT * FROM Customers WHERE State='GA' OR State='KY'

Отметим в этих примерах, что значения критерия выбора заключаются в одиночные кавычки (апострофы). При любом поиске в текстовых полях базы данных значение критерия должно заключаться в одиночные кавычки (WHERE State = 'GA'). Если тестируется числовое поле, значение данных в кавычки не заключается (WHERE Number > 10). Если тестируется поле даты/времени, то значение критерия окружается символами # (WHERE TheDate > #1/1/01#).



Содержание раздела