PHP MySQL

MySQL LIKE 子句用于 WHERE 子句中,以在指定列中搜索指定模式。与 LIKE 子句结合使用的通配符如下:

MySQL 中的通配符

使用 LIKE 子句的语法如下:

SELECT column1, column2, ...
FROM table_name
WHERE column LIKE pattern; 

下表描述了与 LIKE 子句一起使用的模式,并使用 (%) 和 (_ ).

符号描述示例
%代表零个、一个或多个字符。'J%' 代表以"J"开头的值,例如 - John、Jo 和 Jack 等。
_代表一个字符。'_o%'代表第二个位置有"o"的值,例如 - John、Jo 和 Journey 等。
模式描述
' J%'以"J"开头的值。
'%n'以"n结尾的值"。
'%oh%'任意位置有"oh"的值。
'_o%'第二个位置有"o"的值。
'J_%'以"J"开头且至少包含 2 个字符的值。
'J__%'以"J"开头的值并且至少包含 3 个字符。
'J%n'以"J"开头并以"n"结尾的值。

除此之外,还可以使用 mysqli_connect() 函数连接到 MySQL 服务器。建立连接后,可以使用 mysqli_query() 函数对数据库执行查询。

num_rows() 函数可用于检查返回的行数是否超过零。然后,可以使用 fetch_assoc() 函数以关联数组的形式获取结果集。稍后可以使用 free_result() 函数释放与结果关联的内存。

Like查询 - 面向对象风格

考虑一个包含名为 employee的员工表具有以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

下面的示例演示如何使用 LIKE 子句选择 Employee 表中以 City 开头的记录与"New"使用面向对象的风格。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDatabase";

//建立连接
$mysqli = new mysqli($servername, $username, $password, $dbname);

//检查连接
if ($mysqli->connect_errno) {
  echo "Failed to connect to MySQL: ". $mysqli->connect_error;
  exit();
}

//从数据库获取查询结果
$sql = 'SELECT Name, Age, City 
FROM Employee 
WHERE City LIKE "New%";';
$result = $mysqli->query($sql);

//获取关联数组
while ($row = $result->fetch_assoc()) {
  printf("%s, %d, %s\n", $row["Name"], $row["Age"], $row["City"]);
}

//释放结果集
$result->free_result();

//关闭连接
$mysqli->close();
?> 

上述代码的输出将是:

Marry, 24, New York
Ramesh, 28, New Delhi 

Like查询 - 面向过程风格

获取使用面向过程风格得到相同的结果,可以使用以下脚本。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDatabase";

//建立连接
$mysqli = mysqli_connect($servername, $username, $password, $dbname);

//检查连接
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: ". mysqli_connect_error();
  exit();
}

//从数据库获取查询结果
$sql = 'SELECT Name, Age, City 
FROM Employee 
WHERE City LIKE "New%";';
$result = mysqli_query($mysqli, $sql);

//获取关联数组
while ($row = mysqli_fetch_assoc($result)) {
  printf("%s, %d, %s\n", $row["Name"], $row["Age"], $row["City"]);
}

//释放结果集
mysqli_free_result($result);

//关闭连接
mysqli_close($mysqli);
?> 

上述代码的输出将是:

Marry, 24, New York
Ramesh, 28, New Delhi 

完整 PHP MySQLi 参考

有关 PHP MySQLi 扩展的所有属性、方法和功能的完整参考,请参阅 PHP MySQLi 参考