MySQLi - Cláusula WHERE

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

Sintaxe

Aqui está a sintaxe SQL genérica do comando SELECT com a cláusula WHERE para buscar dados da tabela MySQLi -

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Você pode usar uma ou mais tabelas separadas por 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 AND ou 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 WHEREA cláusula funciona como uma condição if em qualquer linguagem de programação. Esta cláusula é usada para comparar o valor fornecido com o valor do campo disponível na tabela MySQLi. Se o valor fornecido de fora for igual ao valor do campo disponível na tabela MySQLi, ele retornará essa linha.

Aqui está a lista de operadores, que podem ser usados ​​com 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, se sim a condição torna-se verdadeira. (A = B) não é verdade.
! = Verifica se os valores de 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 torna-se 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 torna-se 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 torna-se verdadeira. (A <= B) é verdadeiro.

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

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

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

Buscando dados do prompt de comando

Isso usará o comando SQL SELECT com a cláusula WHERE para buscar dados selecionados da tabela tutorials_inf do MySQLi.

Exemplo

O exemplo a seguir retornará todos os registros de tutorials_inf mesa cujo nome é sai -

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql>SELECT * from tutorials_inf where name = 'sai';
+----+------+
| id | name |
+----+------+
|  1 | SAI  |
+----+------+
1 row in set (0.00 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 usandoBINARY palavra-chave da seguinte forma -

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> SELECT * from tutorials_inf \WHERE BINARY name = 'sai';
Empty set (0.02 sec)

mysql>

Buscando dados usando script PHP:

Você pode usar o mesmo comando SQL SELECT com WHERE CLAUSE na função PHP mysqli_query().

Exemplo

O exemplo a seguir retornará todos os registros de tutorials_inf mesa cujo nome é sai -

<?php
   $dbhost = 'localhost:3306';
   $dbuser = 'root';
   $dbpass = '';
   $dbname = 'TUTORIALS';
   $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
   
   if(! $conn ) {
      die('Could not connect: ' . mysqli_error());
   }
   echo 'Connected successfully<br>';
   $sql = 'SELECT * from tutorials_inf where name="sai"';
   $result = mysqli_query($conn, $sql);

   if (mysqli_num_rows($result) > 0) {
      while($row = mysqli_fetch_assoc($result)) {
         echo "Name: " . $row["name"]. "<br>";
      }
   } else {
      echo "0 results";
   }
   mysqli_close($conn);
?>

O exemplo de saída deve ser assim -

Connected successfully
Name: SAI