Directorio de artigos
Como realizar unha consulta LIKE en MySQL ? Cales son as regras de uso da sentenza LIKE nas bases de datos MySQL ?
Cláusula LIKE de MySQL
Sabemos usar o comando SQL SELECT para ler datos en MySQL, e podemos usar a cláusula WHERE na instrución SELECT para obter os rexistros especificados.
A cláusula WHERE pode usar o signo igual (=) para definir as condicións para recuperar datos, como por exemplo "chenweiliang_author = 'chenweiliang.com'".
Pero ás veces necesitamos obter todos os rexistros cuxo campo chenweiliang_author conteña caracteres "COM", entón necesitamos usar a cláusula SQL LIKE na cláusula WHERE.
A cláusula LIKE de SQL usa o signo de porcentaxe % para representar calquera carácter, de xeito similar ao asterisco * en UNIX ou nas expresións regulares.
Se non se usa o signo de porcentaxe % , a cláusula LIKE ten o mesmo efecto que o signo igual = .
gramática
A seguinte é a sintaxe xeral dunha instrución SQL SELECT para ler datos dunha táboa de datos mediante a cláusula LIKE:
SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
- Podes especificar calquera condición na cláusula WHERE.
- Podes usar a cláusula LIKE na cláusula WHERE.
- Podes usar a cláusula LIKE en lugar do signo de igual =.
- LIKE adoita asociarse con % Usados xuntos, de xeito similar á busca de metacaracteres.
- Podes especificar unha ou máis condicións usando AND ou OU.
- Podes usar a cláusula WHERE...LIKE nos comandos DELETE ou UPDATE para especificar condicións.
Usando a cláusula LIKE no símbolo do sistema
A continuación usaremos a cláusula WHERE...LIKE no comando SQL SELECT para ler datos da táboa de datos MySQL chenweiliang_tbl.
exemplo
A seguinte é unha lista de todos os rexistros da táboa chenweiliang_tbl que rematan en "COM" no campo chenweiliang_author :
Instrucción 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)
Usando a cláusula LIKE no script PHP
Podes usar a función PHP mysqli_query() e o mesmo comando SQL SELECT cunha cláusula WHERE...LIKE para obter datos.
Esta función utilízase para executar comandos SQL e despois producir datos para todas as consultas mediante a función PHP mysqli_fetch_assoc().
Pero se é unha instrución SQL que usa a cláusula WHERE...LIKE en DELETE ou UPDATE, non hai necesidade de usar a función mysqli_fetch_array().
exemplo
Así é como usamos un script PHP para ler todos os rexistros que rematan en COM no campo chenweiliang_author da táboa chenweiliang_tbl:
Proba de cláusula DELETE de MySQL:
<?
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);
?>Esperemos que o artigo "Como realizar unha consulta LIKE en MySQL? Uso da sentenza LIKE na base de datos MySQL" compartido no blog de Chen Weiliang ( https://www.chenweiliang.com/ ) che sexa útil.
Non dubides en compartir a ligazón deste artigo: https://www.chenweiliang.com/cwl-474.html
