MySQL - Klausa SEPERTI
Kami telah melihat SQL SELECTperintah untuk mengambil data dari tabel MySQL. Kita juga bisa menggunakan klausa bersyarat yang disebut sebagaiWHERE klausa untuk memilih catatan yang diperlukan.
Klausa WHERE dengan tanda 'sama dengan' (=) berfungsi dengan baik jika kita ingin melakukan pencocokan tepat. Seperti jika "tutorial_author = 'Sanjay'". Tapi mungkin ada persyaratan di mana kita ingin menyaring semua hasil di mana nama tutorial_author harus mengandung "jay". Ini bisa ditangani dengan menggunakanSQL LIKE Clause bersama dengan klausa WHERE.
Jika klausa SQL LIKE digunakan bersama dengan karakter%, maka itu akan bekerja seperti karakter meta (*) seperti di UNIX, sambil mencantumkan semua file atau direktori pada prompt perintah. Tanpa karakter%, klausa LIKE sangat sama denganequal to menandatangani bersama dengan klausa WHERE.
Sintaksis
Blok kode berikut memiliki sintaks SQL generik dari perintah SELECT bersama dengan klausa LIKE untuk mengambil data dari tabel MySQL.
SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
Anda dapat menentukan kondisi apa pun menggunakan klausa WHERE.
Anda dapat menggunakan klausa LIKE bersama dengan klausa WHERE.
Anda dapat menggunakan klausa LIKE sebagai pengganti equals to tanda.
Ketika LIKE digunakan bersama dengan tanda% maka itu akan bekerja seperti pencarian karakter meta.
Anda dapat menentukan lebih dari satu kondisi menggunakan AND atau OR operator.
Klausa WHERE ... LIKE dapat digunakan bersama dengan perintah DELETE atau UPDATE SQL juga untuk menentukan kondisi.
Menggunakan klausa LIKE di Command Prompt
Ini akan menggunakan perintah SQL SELECT dengan klausa WHERE ... LIKE untuk mengambil data yang dipilih dari tabel MySQL - tutorials_tbl.
Contoh
Contoh berikut akan mengembalikan semua catatan dari tutorials_tbl tabel yang diakhiri dengan nama penulis jay -
root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl
-> WHERE tutorial_author LIKE '%jay';
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
| 3 | JAVA Tutorial | Sanjay | 2007-05-21 |
+-------------+----------------+-----------------+-----------------+
1 rows in set (0.01 sec)
mysql>
Menggunakan klausa LIKE di dalam Script PHP
Anda dapat menggunakan sintaks serupa dari klausa WHERE ... LIKE ke dalam fungsi PHP - mysql_query(). Fungsi ini digunakan untuk menjalankan perintah SQL dan kemudian fungsi PHP lainnya -mysql_fetch_array() dapat digunakan untuk mengambil semua data yang dipilih, jika klausa WHERE ... LIKE digunakan bersama dengan perintah SELECT.
Tetapi jika klausa WHERE ... LIKE digunakan dengan perintah DELETE atau UPDATE, maka tidak diperlukan lagi pemanggilan fungsi PHP.
Contoh
Cobalah contoh berikut untuk mengembalikan semua catatan dari tutorials_tbl tabel yang berisi nama penulisnya jay -
<?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 LIKE "%jay%"';
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);
?>