Κατάλογος άρθρου
Πώς να χρησιμοποιήσετε την ρήτρα WHERE στην MySQL ; Σύνταξη για πολλαπλές συνθήκες στην ρήτρα WHERE.
MySQL ρήτρα WHERE
Γνωρίζουμε ότι χρησιμοποιούμε τη δήλωση SQL SELECT για την ανάγνωση δεδομένων από τον πίνακα MySQL.
Για να επιλέξετε υπό όρους δεδομένα από έναν πίνακα, προσθέστε έναν όρο WHERE στην πρόταση SELECT.
γραμματική
Ακολουθεί η γενική σύνταξη μιας πρότασης SQL SELECT για την ανάγνωση δεδομένων από έναν πίνακα δεδομένων χρησιμοποιώντας τον όρο WHERE:
SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2.....
- Μπορείτε να χρησιμοποιήσετε έναν ή περισσότερους πίνακες στη δήλωση ερωτήματος, χρησιμοποιώντας κόμματα μεταξύ των πινάκων, Διαχωρίστε και χρησιμοποιήστε τη δήλωση WHERE για να ορίσετε συνθήκες ερωτήματος.
- Μπορείτε να καθορίσετε οποιαδήποτε συνθήκη στον όρο WHERE.
- Μπορείτε να καθορίσετε μία ή περισσότερες συνθήκες χρησιμοποιώντας AND ή OR.
- Ο όρος WHERE μπορεί επίσης να χρησιμοποιηθεί με τις εντολές DELETE ή UPDATE της SQL.
- Η ρήτρα WHERE είναι παρόμοια με τη συνθήκη if σε διαδικαστικές γλώσσες και διαβάζει τα καθορισμένα δεδομένα σύμφωνα με την τιμή πεδίου στον πίνακα MySQL.
Ακολουθεί μια λίστα τελεστών που μπορούν να χρησιμοποιηθούν στον όρο WHERE.
Τα παραδείγματα στον παρακάτω πίνακα υποθέτουν ότι το Α είναι 10 και το Β είναι 20
| χειριστής | περιγραφή | Παράδειγμα |
|---|---|---|
| = | Το σύμβολο ίσον, ελέγχει αν δύο τιμές είναι ίσες και επιστρέφει true αν είναι ίσες | (Α = Β) επιστρέφει ψευδής. |
| <>, != | Όχι ίσο, ελέγξτε αν δύο τιμές είναι ίσες, επιστρέψτε true αν δεν είναι ίσες | Το (A != B) επιστρέφει true. |
| > | Σημάδι μεγαλύτερο από, ελέγξτε αν η τιμή στα αριστερά είναι μεγαλύτερη από την τιμή στα δεξιά, εάν η τιμή στα αριστερά είναι μεγαλύτερη από την τιμή στα δεξιά, επιστρέψτε true | (Α > Β) επιστρέφει ψευδής. |
| < | Σημάδι μικρότερο από, ελέγξτε αν η τιμή στα αριστερά είναι μικρότερη από την τιμή στα δεξιά, εάν η τιμή στα αριστερά είναι μικρότερη από την τιμή στα δεξιά, επιστρέψτε true | Το (A < B) επιστρέφει true. |
| >= | Σήμα μεγαλύτερο ή ίσο, ελέγξτε εάν η τιμή στα αριστερά είναι μεγαλύτερη ή ίση με την τιμή στα δεξιά, εάν η τιμή στα αριστερά είναι μεγαλύτερη ή ίση με την τιμή στα δεξιά, επιστρέψτε true | (A >= B) επιστρέφει false. |
| <= | Σύμβολο μικρότερο ή ίσο, ελέγξτε αν η τιμή στα αριστερά είναι μικρότερη ή ίση με την τιμή στα δεξιά, εάν η τιμή στα αριστερά είναι μικρότερη ή ίση με την τιμή στα δεξιά, επιστρέψτε true | (A <= B) επιστρέφει true. |
Η ρήτρα WHERE είναι πολύ χρήσιμη εάν θέλουμε να διαβάσουμε τα καθορισμένα δεδομένα από τον πίνακα δεδομένων MySQL.
Η χρήση του πρωτεύοντος κλειδιού ως ερώτημα υπό όρους στον όρο WHERE είναι πολύ γρήγορη.
Εάν τα δεδομένα κριτήρια δεν έχουν αντίστοιχες εγγραφές στον πίνακα, το ερώτημα δεν επιστρέφει δεδομένα.
ανάγνωση δεδομένων από τη γραμμή εντολών
Θα χρησιμοποιήσουμε τον όρο WHERE στη δήλωση SQL SELECT για να διαβάσουμε τα δεδομένα στον πίνακα δεδομένων MySQL chenweiliang_tbl:
Παράδειγμα
Το ακόλουθο παράδειγμα θα διαβάσει όλες τις εγγραφές στον πίνακα chenweiliang_tbl όπου η τιμή του πεδίου chenweiliang_author είναι Sanjay:
ρήτρα SQL SELECT WHERE
Οι συγκρίσεις συμβολοσειρών στον όρο WHERE της MySQL δεν έχουν διάκριση πεζών-κεφαλαίων.Μπορείτε να χρησιμοποιήσετε τη λέξη-κλειδί ΔΥΑΔΙΚΟ για να καθορίσετε ότι οι συγκρίσεις συμβολοσειρών στον όρο WHERE έχουν διάκριση πεζών-κεφαλαίων.
Το παρακάτω παράδειγμα:
ΔΥΑΔΙΚΗ λέξη-κλειδί
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)
Το παράδειγμα χρησιμοποιεί τη λέξη-κλειδί BINARY , η οποία κάνει διάκριση πεζών-κεφαλαίων, επομένως η συνθήκη ερωτήματος chenweiliang_author='chenweiliang.com' δεν επιστρέφει δεδομένα.
Ανάγνωση δεδομένων χρησιμοποιώντας σενάριο PHP
Μπορείτε να χρησιμοποιήσετε τη συνάρτηση PHP mysqli_query() και την ίδια εντολή SQL SELECT με έναν όρο WHERE για να λάβετε τα δεδομένα.
Αυτή η συνάρτηση χρησιμοποιείται για την εκτέλεση εντολών SQL και στη συνέχεια για την έξοδο όλων των ερωτηθέντων δεδομένων μέσω της συνάρτησης PHP mysqli_fetch_array().
Παράδειγμα
Το ακόλουθο παράδειγμα θα επιστρέψει εγγραφές από τον πίνακα chenweiliang_tbl που χρησιμοποιούν την τιμή chenweiliang_author στον πίνακα chenweiliang_tbl ως chenweiliang.com :
Δοκιμή ρήτρας 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);
?>Ας ελπίσουμε ότι το άρθρο "Πώς να χρησιμοποιήσετε τη ρήτρα MySQL WHERE; Σύνταξη πολλαπλών συνθηκών στη ρήτρα WHERE" που κοινοποιήθηκε στο ιστολόγιο του Chen Weiliang ( https://www.chenweiliang.com/ ) θα σας φανεί χρήσιμο.
Μη διστάσετε να κοινοποιήσετε τον σύνδεσμο αυτού του άρθρου: https://www.chenweiliang.com/cwl-462.html
