MySQL - Cláusula WHERE

Vimos o SQL SELECTcomando para buscar dados de uma tabela MySQL. Podemos usar uma cláusula condicional chamada deWHERE Clausepara filtrar os resultados. Usando esta cláusula WHERE, podemos especificar um critério de seleção para selecionar os registros necessários de uma tabela.

Sintaxe

O bloco de código a seguir possui uma sintaxe SQL genérica do comando SELECT com a cláusula WHERE para buscar dados da tabela MySQL -

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Você pode usar uma ou mais tabelas separadas por uma vírgula para incluir várias condições usando uma cláusula WHERE, mas a cláusula WHERE é uma parte opcional do comando SELECT.

  • Você pode especificar qualquer condição usando a cláusula WHERE.

  • Você pode especificar mais de uma condição usando o AND ou o OR operadores.

  • Uma cláusula WHERE pode ser usada junto com o comando DELETE ou UPDATE SQL também para especificar uma condição.

o WHERE cláusula funciona como um if conditionem qualquer linguagem de programação. Esta cláusula é usada para comparar o valor fornecido com o valor do campo disponível em uma tabela MySQL. Se o valor fornecido de fora for igual ao valor do campo disponível na tabela MySQL, ele retornará essa linha.

Aqui está a lista de operadores, que podem ser usados ​​com o WHERE cláusula.

Suponha que o campo A tenha 10 e o campo B tenha 20, então -

Operador Descrição Exemplo
= Verifica se os valores dos dois operandos são iguais ou não, caso sim, a condição torna-se verdadeira. (A = B) não é verdade.
! = Verifica se os valores dos dois operandos são iguais ou não, se os valores não são iguais a condição se torna verdadeira. (A! = B) é verdade.
> Verifica se o valor do operando esquerdo é maior que o valor do operando direito, se sim, a condição se torna verdadeira. (A> B) não é verdade.
< Verifica se o valor do operando esquerdo é menor que o valor do operando direito, se sim a condição torna-se verdadeira. (A <B) é verdade.
> = Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se sim, a condição se torna verdadeira. (A> = B) não é verdade.
<= Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito, se sim, a condição se torna verdadeira. (A <= B) é verdadeiro.

A cláusula WHERE é muito útil quando você deseja buscar as linhas selecionadas de uma tabela, especialmente quando você usa o MySQL Join. As junções são discutidas em outro capítulo.

É uma prática comum pesquisar registros usando o Primary Key para tornar a pesquisa mais rápida.

Se a condição fornecida não corresponder a nenhum registro na tabela, a consulta não retornará nenhuma linha.

Buscando dados no prompt de comando

Isso usará o comando SQL SELECT com a cláusula WHERE para buscar os dados selecionados da tabela MySQL - tutorials_tbl.

Exemplo

O exemplo a seguir retornará todos os registros do tutorials_tbl tabela para a qual o nome do autor é Sanjay.

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl WHERE tutorial_author = 'Sanjay';
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|      3      | JAVA Tutorial  |      Sanjay     |    2007-05-21   |      
+-------------+----------------+-----------------+-----------------+
1 rows in set (0.01 sec)

mysql>

A menos que execute um LIKEcomparação em uma string, a comparação não diferencia maiúsculas de minúsculas. Você pode tornar sua pesquisa sensível a maiúsculas e minúsculas usando oBINARY palavra-chave da seguinte forma -

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl \
   WHERE BINARY tutorial_author = 'sanjay';
Empty set (0.02 sec)

mysql>

Buscando dados usando um script PHP

Você pode usar o mesmo comando SQL SELECT com WHERE CLAUSE na função PHP mysql_query(). Esta função é usada para executar o comando SQL e posteriormente outra função PHPmysql_fetch_array()pode ser usado para buscar todos os dados selecionados. Esta função retorna uma linha como uma matriz associativa, uma matriz numérica ou ambos. Esta função retorna FALSE se não houver mais linhas.

Exemplo

O exemplo a seguir retornará todos os registros do tutorials_tbl tabela para a qual o nome do autor é Sanjay -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT tutorial_id, tutorial_title, 
      tutorial_author, submission_date
      FROM tutorials_tbl
      WHERE tutorial_author = "Sanjay"';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );

   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
      "Title: {$row['tutorial_title']} <br> ".
      "Author: {$row['tutorial_author']} <br> ".
      "Submission Date : {$row['submission_date']} <br> ".
      "--------------------------------<br>";
   } 

   echo "Fetched data successfully\n";
   mysql_close($conn);
?>