Wéi benotzen ech MySQL wou Ausso? wou Klausel Multiple Conditioune Syntax

Wéi benotzt een d'WHERE-Klausel a MySQL ? Syntax fir verschidde Konditiounen an der WHERE-Klausel.

MySQL WOU Klausel

Mir wëssen SQL SELECT Ausso ze benotzen fir Daten aus MySQL Dësch ze liesen.

Fir Konditiounsdaten aus enger Tabell ze wielen, füügt eng WHERE Klausel un d'SELECT Ausso.

Grammaire

Déi folgend ass déi allgemeng Syntax vun enger SQL SELECT Ausso fir Daten aus enger Datentabelle mat der WHERE Klausel ze liesen:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Dir kënnt een oder méi Dëscher an der Query Ausso benotzen, mat Kommaen tëscht Dëscher, Split, a benotzt d'WHERE Ausso fir Ufrobedéngungen ze setzen.
  • Dir kënnt all Konditioun an der WHERE Klausel uginn.
  • Dir kënnt eng oder méi Konditioune mat AN oder ODER spezifizéieren.
  • D'WHERE Klausel kann och mat SQL's DELETE oder UPDATE Kommandoen benotzt ginn.
  • D'WHERE Klausel ass ähnlech wéi d'If Conditioun a prozedurale Sproochen, a liest déi spezifizéiert Donnéeën no dem Feldwäert an der MySQL Tabell.

Déi folgend ass eng Lëscht vun Operatoren déi an der WHERE Klausel benotzt kënne ginn.

D'Beispiller an der Tabell hei ënnen huelen un datt A 10 ass a B 20 ass

BedreiwerBeschreiwungInstanz
=Gläich Zeechen, kontrolléiert ob zwee Wäerter gläich sinn, a gitt richteg zréck wa se gläich sinn(A = B) gëtt falsch zréck.
<>, !=Net gläich, kontrolléiert ob zwee Wäerter gläich sinn, gitt richteg zréck wann se net gläich sinn(A != B) gëtt richteg zréck.
>Méi grouss wéi Zeechen, kontrolléiert ob de Wäert op der lénkser Säit méi grouss ass wéi de Wäert op der rietser, wann de Wäert op der lénkser Säit méi grouss ass wéi de Wäert op der rietser, gitt richteg zréck(A > B) gëtt falsch zréck.
<Manner wéi Zeechen, kontrolléiert ob de Wäert op der lénker Säit manner ass wéi de Wäert op der rietser, wann de Wäert op der lénker manner ass wéi de Wäert op der rietser, gitt richteg zréck(A <B) gëtt richteg zréck.
>=Méi wéi oder gläich Zeechen, kontrolléiert ob de Wäert op der lénker Säit méi grouss ass wéi oder gläich mam Wäert op der rietser, wann de Wäert op der lénker méi grouss ass wéi oder gläich mam Wäert op der rietser Säit, gitt richteg zréck(A >= B) gëtt falsch zréck.
<=Manner wéi oder gläich Zeechen, kontrolléiert ob de Wäert op der lénker Säit manner wéi oder gläich mam Wäert op der rietser ass, wann de Wäert op der lénker manner ass wéi oder gläich mam Wäert op der rietser, gitt richteg zréck(A <= B) gëtt richteg zréck.

D'WHERE Klausel ass ganz nëtzlech wa mir déi spezifizéiert Daten aus der MySQL Datentabelle liesen wëllen.

De primäre Schlëssel als bedingte Ufro an der WHERE Klausel ze benotzen ass ganz séier.

Wann déi gegebene Critèren keng passende records an der Tabell hunn, gëtt d'Ufro keng Daten zréck.


liesen Daten aus Kommando VIRSCHLOEN

Mir benotzen d'WHERE Klausel an der SQL SELECT Ausso fir d'Donnéeën an der MySQL Datentabell chenweiliang_tbl ze liesen:

Instanz

Dat folgend Beispill liest all records an der chenweiliang_tbl Tabelle wou de Wäert vum chenweiliang_author Feld Sanjay ass:

SQL SELECT WHERE Klausel

beruflecher Organisatioun * aus chenweiiliang_tbl WOU chenweiliang_auteur="Chen Weiliang博客";

String Vergläicher am MySQL's WHERE Klausel sinn case-onsensitiv.Dir kënnt d'BINARY Schlësselwuert benotzen fir ze spezifizéieren datt Stringvergläicher an der WHERE Klausel case-sensibel sinn.

Déi folgend Beispill:

BINÄR Schlësselwuert

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)

D'Beispill benotzt dat Schlësselwuert BINARY , wat grouss- a klengbuchstawensensitiv ass, sou datt d'Ufrobedingung chenweiliang_author='chenweiliang.com' keng Donnéeën zréckgëtt.


Liest Daten mat PHP Skript

Dir kënnt d'PHP Funktioun mysqli_query () an déi selwecht SQL SELECT Kommando mat enger WHERE Klausel benotzen fir d'Donnéeën ze kréien.

Dës Funktioun gëtt benotzt fir SQL Kommandoen auszeféieren an dann all déi ugefrote Donnéeën duerch d'PHP Funktioun mysqli_fetch_array ().

Instanz

Dëst Beispill gëtt Daten aus der Tabelle chenweiliang_tbl zréck, déi de Wäert chenweiliang_author am Feld chenweiliang_author als chenweiliang.com benotzen :

MySQL WHERE Klausel Test:

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

Comments

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

Minière zu Top