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 -
[email protected]# 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 -
[email protected]# 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