매일 개발에서는 종종 데이터베이스의 기준을 충족하지 않는 특정 데이터를 제외해야합니다. 예를 들어, 특정 유형의 역할 또는 상태가 아닌 레코드 만 검색됩니다. 데이터 볼륨이 클 때이 유형의 쿼리가 최적화되지 않으면 성능 저하로 이어집니다. 이 기사는 SQL 문을 사용하여 PHP의 불평등 한 필드를 제외하고 쿼리를 효율적으로 구현하고 실제 코드 예제를 제공하는 방법을 소개합니다.
가장 일반적인 방법은 Where 절을 사용하여 일치하는 경우 (<>) 연산자와 같지 않습니다. 사용자 라는 테이블이 있고 역할 필드가 관리자 인 레코드를 제외해야한다고 가정 해 봅시다.
<?php
// 데이터베이스에 연결하십시오
$conn = new mysqli("localhost", "root", "", "myDB");
// 연결이 성공했는지 확인하십시오
if ($conn->connect_error) {
die("연결이 실패했습니다: " . $conn->connect_error);
}
// 쿼리 및 제외는 동일하지 않습니다admin의 기록
$sql = "SELECT * FROM users WHERE role <> 'admin'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - 이름: " . $row["name"]. " - 역할: " . $row["role"]. "<br>";
}
} else {
echo "没有符合条件의 기록";
}
// 데이터베이스 연결을 닫습니다
$conn->close();
?>
위의 코드를 통해 지정된 필드 값을 결과 세트에서 효과적으로 제외하여 쿼리의 정확도를 향상시킬 수 있습니다.
여러 값을 제외 해야하는 경우, 진술 에 사용하지 않는 것이 더 효율적이고 의미 적입니다. 다음 예는 두 가지 역할을 제외하는 방법을 보여줍니다 : 관리자 및 편집기 :
<?php
// 데이터베이스에 연결하십시오
$conn = new mysqli("localhost", "root", "", "myDB");
// 연결이 성공했는지 확인하십시오
if ($conn->connect_error) {
die("연결이 실패했습니다: " . $conn->connect_error);
}
// 쿼리 및 제외는 동일하지 않습니다指定역할의 기록
$roles = "'admin','editor'";
$sql = "SELECT * FROM users WHERE role NOT IN ($roles)";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - 이름: " . $row["name"]. " - 역할: " . $row["role"]. "<br>";
}
} else {
echo "没有符合条件의 기록";
}
// 데이터베이스 연결을 닫습니다
$conn->close();
?>
간결한 진술 뿐만 아니라 여러 값을 제외해야 할 때 코드 중복성을 줄입니다. 일반적으로 사용되는 쿼리 최적화 방법입니다.
SQL의 진술을 사용 하지 않고 합리적으로 사용함으로써, 데이터베이스와의 PHP 상호 작용의 효율성은 특히 큰 데이터 세트를 처리 할 때 효과가 더 분명하다. 개발자는 실제 요구에 따라 이러한 제외 조건을 유연하게 적용하여 고성능 PHP 프로그램을 작성하는 것이 좋습니다.