Hvordan bruger man MySQL where statement? hvor klausul flere betingelser syntaks

MySQL databaseHvordan bruger man where statement? hvor klausul flere betingede syntaks

MySQL WHERE-klausul

Vi ved at bruge SQL SELECT-sætning til at læse data fra MySQL-tabellen.

Hvis du vil betinget vælge data fra en tabel, skal du tilføje et WHERE-udtryk til SELECT-sætningen.

grammatik

Følgende er den generelle syntaks for en SQL SELECT-sætning til at læse data fra en datatabel ved hjælp af WHERE-sætningen:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Du kan bruge en eller flere tabeller i forespørgselssætningen ved at bruge kommaer mellem tabellerne, Opdel, og brug WHERE-sætningen til at angive forespørgselsbetingelser.
  • Du kan angive en hvilken som helst betingelse i WHERE-udtrykket.
  • Du kan angive en eller flere betingelser ved at bruge OG eller ELLER.
  • WHERE-sætningen kan også bruges med SQL's DELETE- eller UPDATE-kommandoer.
  • WHERE-sætningen ligner if-betingelsen i proceduresprog og læser de angivne data i henhold til feltværdien i MySQL-tabellen.

Det følgende er en liste over operatorer, der kan bruges i WHERE-sætningen.

Eksemplerne i tabellen nedenfor antager, at A er 10 og B er 20

Operatør描述Instans
=Lige tegn, kontrollerer om to værdier er ens og returnerer sandt hvis de er ens(A = B) returnerer falsk.
<>, !=Ikke ens, tjek om to værdier er ens, returner sand hvis de ikke er ens(A != B) returnerer sandt.
>Større end fortegn, tjek om værdien til venstre er større end værdien til højre, hvis værdien til venstre er større end værdien til højre, returneres sand(A > B) returnerer falsk.
<Mindre end-tegn, tjek om værdien til venstre er mindre end værdien til højre, hvis værdien til venstre er mindre end værdien til højre, returneres sand(A < B) returnerer sandt.
>=Større end eller lighedstegn, tjek om værdien til venstre er større end eller lig med værdien til højre, hvis værdien til venstre er større end eller lig med værdien til højre, returneres sand(A >= B) returnerer falsk.
<=Mindre end eller lighedstegn, tjek om værdien til venstre er mindre end eller lig med værdien til højre, hvis værdien til venstre er mindre end eller lig med værdien til højre, returneres sand(A <= B) returnerer sand.

WHERE-sætningen er meget nyttig, hvis vi ønsker at læse de specificerede data fra MySQL-datatabellen.

Det er meget hurtigt at bruge den primære nøgle som en betinget forespørgsel i WHERE-sætningen.

Hvis de givne kriterier ikke har nogen matchende poster i tabellen, returnerer forespørgslen ingen data.


læse data fra kommandoprompten

Vi vil bruge WHERE-sætningen i SQL SELECT-sætningen til at læse dataene i MySQL-datatabellen chenweiliang_tbl:

Instans

Følgende eksempel vil læse alle poster i chenweiliang_tbl-tabellen, hvor værdien af ​​chenweiliang_author-feltet er Sanjay:

SQL SELECT WHERE-sætning

SELECT * fra chenweiliang_tbl HVOR chenweiliang_forfatter='Chen WeiliangBlog';

Strengsammenligninger i MySQL's WHERE-sætning er ufølsomme for store og små bogstaver.Du kan bruge nøgleordet BINARY til at angive, at strengsammenligninger i WHERE-sætningen skelner mellem store og små bogstaver.

Følgende eksempel:

BINÆRT søgeord

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)

brugt i eksemplet Binary søgeord, skelner mellem store og små bogstaver, så chenweiliang_author='chenweiliang.com' Forespørgselsbetingelsen er ingen data.


Læs data ved hjælp af PHP-script

Du kan bruge PHP-funktionen mysqli_query() og den samme SQL SELECT-kommando med en WHERE-sætning for at hente dataene.

Denne funktion bruges til at udføre SQL-kommandoer og derefter udlæse alle de forespurgte data gennem PHP-funktionen mysqli_fetch_array().

Instans

Følgende eksempel vender tilbage fra chenweiliang_tbl-tabellen ved at bruge chenweiliang_author-feltværdien som chenweiliang.com registrering af:

MySQL WHERE klausul 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);
?>

发表 评论

Din e-mailadresse vil ikke blive offentliggjort. 必填 项 已 用 * 标注

Rul til top