티스토리 뷰

반응형

mysql로 여러가지 응용프로그램을 제작하는데,

이런 상황이 있어서 정리해 본다.

SELECT * FROM dbeunsungbiz.orderdb

SELECT * FROM dbeunsungbiz.ordergrid

두 DB의 필드값이 $search변수값을 포함하면 전부 추출하는 코드를 짜고 싶다.

$search = "특정값"; // 검색어
$sql_orderdb = "SELECT * FROM dbeunsungbiz.orderdb WHERE col1 LIKE '%$search%' OR col2 LIKE '%$search%' OR col3 LIKE '%$search%'"; // orderdb 테이블에서 검색어가 포함된 필드 검색
$sql_ordergrid = "SELECT * FROM dbeunsungbiz.ordergrid WHERE col1 LIKE '%$search%' OR col2 LIKE '%$search%' OR col3 LIKE '%$search%'"; // ordergrid 테이블에서 검색어가 포함된 필드 검색

// DB 연결
$connection = mysqli_connect($host, $username, $password, $database);

// orderdb에서 검색어가 포함된 필드 검색
$result_orderdb = mysqli_query($connection, $sql_orderdb);

// ordergrid에서 검색어가 포함된 필드 검색
$result_ordergrid = mysqli_query($connection, $sql_ordergrid);

// 결과 출력
while ($row = mysqli_fetch_assoc($result_orderdb)) {
  // orderdb에서 검색어가 포함된 필드 출력
  echo $row['col1'] . " " . $row['col2'] . " " . $row['col3'] . "<br>";
}

while ($row = mysqli_fetch_assoc($result_ordergrid)) {
  // ordergrid에서 검색어가 포함된 필드 출력
  echo $row['col1'] . " " . $row['col2'] . " " . $row['col3'] . "<br>";
}

// DB 연결 종료
mysqli_close($connection);

 

위 코드에서는 $search 변수에 특정 검색어를 할당하고, 각각의 테이블에서 LIKE 연산자를 사용하여 검색어가 포함된 필드를 검색합니다.

검색된 결과를 출력하는데, while문을 사용하여 각각의 테이블에서 검색어가 포함된 필드를 출력합니다.

마지막으로 DB 연결을 종료합니다.

 

or 조건으로 두 DB에 한쪽이라도 값을 가지고 있다면 출력하는 코드

SELECT * FROM dbeunsungbiz.orderdb 
WHERE col1 LIKE '%{$search}%' OR col2 LIKE '%{$search}%' OR col3 LIKE '%{$search}%'
UNION
SELECT * FROM dbeunsungbiz.ordergrid
WHERE col1 LIKE '%{$search}%' OR col2 LIKE '%{$search}%' OR col3 LIKE '%{$search}%'

위 쿼리문에서 col1, col2, col3는 각 DB의 필드명을 나타내며, $search는 검색하고자 하는 값입니다.

LIKE 연산자를 사용하여 검색어가 포함된 필드 값을 찾습니다. 두 개의 SELECT문을 UNION으로 연결하여 결과를 합칩니다.

반응형
댓글