MySQL - WHERE Maddesi
SQL'i gördük SELECTMySQL tablosundan veri almak için komut. Bir koşullu cümle kullanabiliriz:WHERE Clausesonuçları filtrelemek için. Bu WHERE cümlesini kullanarak, bir tablodan gerekli kayıtları seçmek için bir seçim kriteri belirleyebiliriz.
Sözdizimi
Aşağıdaki kod bloğu, MySQL tablosundan veri almak için WHERE yan tümcesine sahip SELECT komutunun genel bir SQL sözdizimine sahiptir -
SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
WHERE yan tümcesi kullanarak çeşitli koşulları dahil etmek için virgülle ayrılmış bir veya daha fazla tabloyu kullanabilirsiniz, ancak WHERE yan tümcesi SELECT komutunun isteğe bağlı bir parçasıdır.
WHERE yan tümcesini kullanarak herhangi bir koşulu belirtebilirsiniz.
Kullanarak birden fazla koşul belirtebilirsiniz. AND ya da OR operatörler.
WHERE yan tümcesi, bir koşul belirtmek için DELETE veya UPDATE SQL komutuyla birlikte kullanılabilir.
WHERE fıkra gibi çalışır if conditionherhangi bir programlama dilinde. Bu madde, verilen değeri bir MySQL tablosunda bulunan alan değeriyle karşılaştırmak için kullanılır. Dışarıdan verilen değer MySQL tablosundaki kullanılabilir alan değerine eşitse, o satırı döndürür.
İle kullanılabilecek operatörlerin listesi aşağıdadır. WHERE fıkra.
A alanının 10 ve B alanının 20 olduğunu varsayalım, o zaman -
Şebeke | Açıklama | Misal |
---|---|---|
= | İki işlenenin değerlerinin eşit olup olmadığını kontrol eder, evet ise, koşul doğru olur. | (A = B) doğru değil. |
! = | İki işlenenin değerlerinin eşit olup olmadığını kontrol eder, değerler eşit değilse koşul doğru olur. | (A! = B) doğrudur. |
> | Soldaki işlenenin değerinin sağ işlenenin değerinden büyük olup olmadığını kontrol eder, evet ise koşul doğru olur. | (A> B) doğru değil. |
< | Soldaki işlenenin değerinin sağ işlenenin değerinden küçük olup olmadığını kontrol eder, evet ise koşul doğru olur. | (A <B) doğrudur. |
> = | Sol işlenenin değerinin sağ işlenenin değerinden büyük veya ona eşit olup olmadığını kontrol eder, eğer evet ise, o zaman koşul doğru olur. | (A> = B) doğru değil. |
<= | Sol işlenenin değerinin sağ işlenenin değerinden küçük veya ona eşit olup olmadığını kontrol eder, evet ise, koşul doğru olur. | (A <= B) doğrudur. |
WHERE yan tümcesi, seçili satırları bir tablodan almak istediğinizde, özellikle de MySQL Join. Birleştirmeler başka bir bölümde tartışılmaktadır.
Kayıtları aramak yaygın bir uygulamadır. Primary Key aramayı hızlandırmak için.
Verilen koşul tablodaki herhangi bir kayıtla eşleşmezse, sorgu herhangi bir satır döndürmez.
Komut İsteminden Veri Almak
Bu, seçilen verileri MySQL tablosundan almak için SQL SELECT komutunu WHERE yan tümcesi ile kullanacaktır - tutorials_tbl.
Misal
Aşağıdaki örnek, tüm kayıtları döndürür. tutorials_tbl yazar adının olduğu tablo Sanjay.
root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl WHERE tutorial_author = 'Sanjay';
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
| 3 | JAVA Tutorial | Sanjay | 2007-05-21 |
+-------------+----------------+-----------------+-----------------+
1 rows in set (0.01 sec)
mysql>
Yapmadıkça LIKEbir dizede karşılaştırma, karşılaştırma büyük / küçük harfe duyarlı değildir. Aramanızı büyük / küçük harf duyarlı hale getirebilirsiniz.BINARY aşağıdaki gibi anahtar kelime -
root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl \
WHERE BINARY tutorial_author = 'sanjay';
Empty set (0.02 sec)
mysql>
PHP Komut Dosyası Kullanarak Verileri Getirme
Aynı SQL SELECT komutunu WHERE CLAUSE ile PHP işlevinde kullanabilirsiniz. mysql_query(). Bu işlev, SQL komutunu ve daha sonra başka bir PHP işlevini çalıştırmak için kullanılır.mysql_fetch_array()seçilen tüm verileri almak için kullanılabilir. Bu işlev bir satırı ilişkilendirilebilir dizi, sayısal dizi veya her ikisi olarak döndürür. Başka satır yoksa bu işlev FALSE döndürür.
Misal
Aşağıdaki örnek, tüm kayıtları döndürür. tutorials_tbl yazar adının olduğu tablo Sanjay -
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title,
tutorial_author, submission_date
FROM tutorials_tbl
WHERE tutorial_author = "Sanjay"';
mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
echo "Tutorial ID :{$row['tutorial_id']} <br> ".
"Title: {$row['tutorial_title']} <br> ".
"Author: {$row['tutorial_author']} <br> ".
"Submission Date : {$row['submission_date']} <br> ".
"--------------------------------<br>";
}
echo "Fetched data successfully\n";
mysql_close($conn);
?>