Artikola Adresaro
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);
?>Espereble, la artikolo "Kiel plenumi LIKE-serĉon en MySQL? Uzado de la LIKE-instrukcio en MySQL-datumbazo" dividita en la blogo de Chen Weiliang ( https://www.chenweiliang.com/ ) estos helpema al vi.
Bonvolu kunhavigi la ligilon al ĉi tiu artikolo: https://www.chenweiliang.com/cwl-474.html
