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

Baza de date MySQLCum se utilizează declarația where? unde clauza mai multe condiții sintaxa

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)

folosit în exemplu BINAR cuvântul cheie, este sensibil la majuscule, deci chenweiliang_author='chenweiliang.com' Condiția de interogare este lipsa datelor.


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 reveni din tabelul chenweiliang_tbl folosind valoarea câmpului chenweiliang_author ca chenweiliang.com înregistrarea de:

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);
?>

发表 评论

Adresa ta de e-mail nu va fi publicată. Sunt utilizate câmpurile obligatorii * Eticheta

Derulaţi în sus