Cum se utilizează MySQL where declarația? unde clauza mai multe condiții sintaxa

Cum se utilizează clauza WHERE în MySQL ? Sintaxa pentru condiții multiple în clauza WHERE.

MySQL clauza WHERE

Știm să folosim instrucțiunea SQL SELECT pentru a citi datele din tabelul MySQL.

Pentru a selecta în mod condiționat datele dintr-un tabel, adăugați o clauză WHERE la instrucțiunea SELECT.

gramatică

Următoarea este sintaxa generală a unei instrucțiuni SQL SELECT pentru a citi date dintr-un tabel de date folosind clauza WHERE:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Puteți utiliza unul sau mai multe tabele în instrucțiunea de interogare, folosind virgule între tabele, Împărțiți și utilizați instrucțiunea WHERE pentru a seta condițiile de interogare.
  • Puteți specifica orice condiție în clauza WHERE.
  • Puteți specifica una sau mai multe condiții folosind AND sau OR.
  • Clauza WHERE poate fi folosită și cu comenzile DELETE sau UPDATE ale SQL.
  • Clauza WHERE este similară cu condiția if din limbajele procedurale și citește datele specificate în funcție de valoarea câmpului din tabelul MySQL.

Următoarea este o listă de operatori care pot fi utilizați în clauza WHERE.

Exemplele din tabelul de mai jos presupun că A este 10 și B este 20

operatorDescriereInstanță
=Semnul egal, verifică dacă două valori sunt egale și returnează adevărat dacă sunt egale(A = B) returnează false.
<>, !=Nu este egal, verificați dacă două valori sunt egale, returnați adevărat dacă nu sunt egale(A != B) returnează adevărat.
>Mai mare decât semnul, verificați dacă valoarea din stânga este mai mare decât valoarea din dreapta, dacă valoarea din stânga este mai mare decât valoarea din dreapta, returnați adevărat(A > B) returnează false.
<Mai puțin decât semn, verificați dacă valoarea din stânga este mai mică decât valoarea din dreapta, dacă valoarea din stânga este mai mică decât valoarea din dreapta, returnați adevărat(A < B) returnează adevărat.
>=Semn mai mare sau egal, verificați dacă valoarea din stânga este mai mare sau egală cu valoarea din dreapta, dacă valoarea din stânga este mai mare sau egală cu valoarea din dreapta, returnați adevărat(A >= B) returnează false.
<=Semn mai mic sau egal, verificați dacă valoarea din stânga este mai mică sau egală cu valoarea din dreapta, dacă valoarea din stânga este mai mică sau egală cu valoarea din dreapta, returnați adevărat(A <= B) returnează adevărat.

Clauza WHERE este foarte utilă dacă dorim să citim datele specificate din tabelul de date MySQL.

Utilizarea cheii primare ca interogare condiționată în clauza WHERE este foarte rapidă.

Dacă criteriile date nu au înregistrări care se potrivesc în tabel, interogarea nu returnează date.


citiți datele din promptul de comandă

Vom folosi clauza WHERE din instrucțiunea SQL SELECT pentru a citi datele din tabelul de date MySQL chenweiliang_tbl:

Instanță

Următorul exemplu va citi toate înregistrările din tabelul chenweiliang_tbl unde valoarea câmpului chenweiliang_author este Sanjay:

Clauza SQL SELECT WHERE

SELECT * de la chenweiliang_tbl UNDE chenweiliang_autor="Chen Weiliangblogul";

Comparațiile de șiruri din clauza WHERE a MySQL nu fac distincție între majuscule și minuscule.Puteți utiliza cuvântul cheie BINARY pentru a specifica că comparațiile de șiruri din clauza WHERE sunt sensibile la majuscule.

Următorul exemplu:

cuvânt cheie BINAR

mysql> SELECT * from chenweiliang_tbl WHERE BINARY chenweiliang_author='chenweiliang.com';
Empty set (0.01 sec)
 
mysql> SELECT * from chenweiliang_tbl WHERE BINARY chenweiliang_author='chenweiliang.com';
+-----------+---------------+---------------+-----------------+
| chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3 | JAVA 教程 | chenweiliang.com | 2016-05-06 |
| 4 | 学习 Python | chenweiliang.com | 2016-03-06 |
+-----------+---------------+---------------+-----------------+
2 rows in set (0.01 sec)

Exemplul folosește cuvântul cheie BINARY , care ține cont de majuscule și minuscule, așadar condiția de interogare chenweiliang_author='chenweiliang.com' nu returnează date.


Citiți datele folosind script PHP

Puteți folosi funcția PHP mysqli_query() și aceeași comandă SQL SELECT cu o clauză WHERE pentru a obține datele.

Această funcție este folosită pentru a executa comenzi SQL și apoi a scoate toate datele interogate prin funcția PHP mysqli_fetch_array().

Instanță

Următorul exemplu va returna înregistrări din tabela chenweiliang_tbl care utilizează valoarea chenweiliang_author în câmpul chenweiliang_author ca chenweiliang.com :

Testul clauzei MySQL WHERE:

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
// 读取 chenweiliang_author 为 chenweiliang.com 的数据
$sql = 'SELECT chenweiliang_id, chenweiliang_title, 
 chenweiliang_author, submission_date
 FROM chenweiliang_tbl
 WHERE chenweiliang_author="chenweiliang.com"';
 
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
 die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 MySQL WHERE 子句测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
 echo "<tr><td> {$row['chenweiliang_id']}</td> ".
 "<td>{$row['chenweiliang_title']} </td> ".
 "<td>{$row['chenweiliang_author']} </td> ".
 "<td>{$row['submission_date']} </td> ".
 "</tr>";
}
echo '</table>';
// 释放内存
mysqli_free_result($retval);
mysqli_close($conn);
?>

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Derulaţi în sus