Kiel pridemandi MySQL like?La uzado de like deklaro en MySQL-datumbazo

Kiel plenumi LIKE-peton en MySQL ? Kiuj estas la uzkontraktoj de la LIKE-frazo en MySQL-datumbazoj ?

MySQL LIKE-frazo

Ni scias uzi la komandon SQL SELECT por legi datumojn en MySQL, kaj ni povas uzi la klaŭzon WHERE en la deklaro SELECT por akiri la specifitajn rekordojn.

La WHERE-propozicio povas uzi la egalsignon (=) por agordi la kondiĉojn por preni datumojn, ekzemple "chenweiliang_author = 'chenweiliang.com'".

Sed foje ni devas akiri ĉiujn rekordojn, kies kampo chenweiliang_author enhavas "COM" signojn, tiam ni devas uzi la SQL LIKE-frazon en la WHERE-frazo.

La SQL LIKE-propozicio uzas la procentsignon % por reprezenti ajnan signon, simile al la asterisko * en UNIX aŭ regulaj esprimoj.

Se la procenta signo % ne estas uzata , la LIKE-propozicio havas la saman efikon kiel la egalsigno = .

gramatiko

La sekvanta estas la ĝenerala sintakso de SQL SELECT deklaro por legi datumojn de datumtabelo uzante la LIKE-frazon:

SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • Vi povas specifi ajnan kondiĉon en la WHERE-frazo.
  • Vi povas uzi la LIKE-frazon en la WHERE-frazo.
  • Vi povas uzi la LIKE-frazon anstataŭ la egala signo =.
  • LIKE estas kutime asociita kun % Kune uzata, simile al serĉo de metakaraktero.
  • Vi povas specifi unu aŭ pli da kondiĉoj uzante AND aŭ AŬ.
  • Vi povas uzi la klaŭzon WHERE...LIKE en DELETE aŭ UPDATE ordonoj por specifi kondiĉojn.

Uzante la LIKE-frazon en la komanda prompto

Malsupre ni uzos la klaŭzon WHERE...LIKE en la komando SQL SELECT por legi datumojn el la MySQL-datumtabelo chenweiliang_tbl.

ekzemplo

Jen listo de ĉiuj rikordoj el la tabelo chenweiliang_tbl kiuj finiĝas per "COM" en la kampo chenweiliang_author :

SQL UPDATE deklaro:

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)

Uzante LIKE-frazon en PHP-skripto

Vi povas uzi la PHP-funkcion mysqli_query() kaj la saman SQL SELECT komandon kun WHERE...LIKE-frazo por akiri datumojn.

Ĉi tiu funkcio estas uzata por plenumi SQL-komandojn kaj poste eligi datumojn por ĉiuj demandoj per la PHP-funkcio mysqli_fetch_assoc().

Sed se ĝi estas SQL-deklaro uzanta la klaŭzon WHERE...LIKE en DELETE aŭ UPDATE, ne necesas uzi la funkcion mysqli_fetch_array().

ekzemplo

Jen kiel ni uzas PHP-skripton por legi ĉiujn rekordojn finiĝantajn per COM en la kampo chenweiliang_author en la tabelo chenweiliang_tbl:

MySQL DELETE klaŭzotesto:

 
<?
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);
?>

Lasu komenton

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

Rulumu al Supro