Bagaimana untuk membuat pertanyaan seperti MySQL? Penggunaan pernyataan suka dalam pangkalan data MySQL

Bagaimanakah cara untuk melaksanakan pertanyaan LIKE dalam MySQL ? Apakah peraturan penggunaan pernyataan LIKE dalam pangkalan data MySQL ?

Klausa MySQL LIKE

Kami tahu menggunakan perintah SQL SELECT untuk membaca data dalam MySQL, dan kami boleh menggunakan klausa WHERE dalam pernyataan SELECT untuk mendapatkan rekod yang ditentukan.

Klausa WHERE boleh menggunakan tanda sama dengan (=) untuk menetapkan syarat bagi mendapatkan semula data, seperti "chenweiliang_author = 'chenweiliang.com'".

Tetapi kadangkala kita perlu mendapatkan semua rekod yang medan chenweiliang_authornya mengandungi aksara "COM", maka kita perlu menggunakan klausa SQL LIKE dalam klausa WHERE.

Klausa SQL LIKE menggunakan aksara tanda peratus % untuk mewakili sebarang aksara, sama seperti asterisk * dalam UNIX atau ungkapan biasa.

Jika tanda peratus % tidak digunakan , klausa LIKE mempunyai kesan yang sama seperti tanda sama dengan = .

tatabahasa

Berikut ialah sintaks umum pernyataan SQL SELECT untuk membaca data daripada jadual data menggunakan klausa LIKE:

SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • Anda boleh menentukan sebarang syarat dalam klausa WHERE.
  • Anda boleh menggunakan klausa LIKE dalam klausa WHERE.
  • Anda boleh menggunakan klausa LIKE sebagai ganti tanda sama =.
  • LIKE biasanya dikaitkan dengan % Digunakan bersama-sama, serupa dengan carian metacharacter.
  • Anda boleh menentukan satu atau lebih syarat menggunakan DAN atau ATAU.
  • Anda boleh menggunakan klausa WHERE...LIKE dalam perintah DELETE atau UPDATE untuk menentukan syarat.

Menggunakan klausa LIKE dalam command prompt

Di bawah ini kita akan menggunakan klausa WHERE...LIKE dalam perintah SQL SELECT untuk membaca data daripada jadual data MySQL chenweiliang_tbl.

contoh

Berikut ialah senarai semua rekod daripada jadual chenweiliang_tbl yang berakhir dengan "COM" dalam medan chenweiliang_author :

Kenyataan SQL UPDATE:

mysql> use chenweiliang;
Database changed
mysql> SELECT * from chenweiliang_tbl WHERE chenweiliang_author LIKE '%COM';
+-----------+---------------+---------------+-----------------+
| chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3 | 学习 Java | chenweiliang.com | 2015-05-01 |
| 4 | 学习 Python | chenweiliang.com | 2016-03-06 |
+-----------+---------------+---------------+-----------------+
2 rows in set (0.01 sec)

Menggunakan klausa LIKE dalam skrip PHP

Anda boleh menggunakan fungsi PHP mysqli_query() dan perintah SQL SELECT yang sama dengan klausa WHERE...LIKE untuk mendapatkan data.

Fungsi ini digunakan untuk melaksanakan perintah SQL dan kemudian mengeluarkan data untuk semua pertanyaan melalui fungsi PHP mysqli_fetch_assoc().

Tetapi jika ia adalah pernyataan SQL menggunakan klausa WHERE...LIKE dalam DELETE atau UPDATE, tidak perlu menggunakan fungsi mysqli_fetch_array().

contoh

Begini cara kami menggunakan skrip PHP untuk membaca semua rekod yang berakhir dengan COM dalam medan chenweiliang_author dalam jadual chenweiliang_tbl:

Ujian klausa MySQL DELETE:

 
<?
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");
 
$sql = 'SELECT chenweiliang_id, chenweiliang_title, 
 chenweiliang_author, submission_date
 FROM chenweiliang_tbl
 WHERE chenweiliang_author LIKE "%COM"';
 
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
 die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<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_close($conn);
?>

发表 评论

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

Tatal ke