0
내가 작업중인 웹 시스템에서 검색을 만드는 중입니다. 검색 쿼리는 내가 필요한 데이터를 찾는 측면에서 매우 간단합니다 (그리고 이것이 가능한지 확실하지 않습니다). 을 알고 싶습니다. 데이터가 일치합니다.검색 기준과 일치하는 열 확인
SELECT o.*, c.`customer_name`
FROM `orders` o
LEFT JOIN `customers` c ON (o.`customerID` = c.`customerID`)
WHERE ((o.`orderID` like '%adam%') OR
(o.`order_ref` like '%adam%') OR
(c.`customer_name` like '%adam%') OR
(c.`address_line1` like '%adam%') OR
(c.`address_line2` like '%adam%') OR
(c.`town` like '%adam%') OR
(c.`city` like '%adam%') OR
(c.`postcode` like '%adam%'))
위의 쿼리에서 고객 이름은 일치 할 수 있지만 쿼리에서 실제로 일치하는 열을 어떻게 알 수 있습니까? 확실히 PhpMyAdmin이 일치하는 조건을 오렌지색 상자로 추가했기 때문에 가능합니다.
검색하는 데 많은 시간을 썼지 만 적절한 용어를 검색하지 않아 해결책을 찾을 수 없습니다. 내가 발견했으나 여전히이 시나리오에 들어 맞지 않는 가장 가까운 것은 CASE WHEN
문을 사용하고 있습니다.
모든 아이디어를 얻을 수 있습니다.
감사합니다.
아담.
SELECT o.*, c.customer_name,
CASE WHEN o.orderID LIKE '%adam%' THEN 'orderID'
WHEN o.order_ref LIKE '%adam%' THEN 'order_ref'
...
WHEN c.postcode LIKE '%adam%' THEN 'postcode'
END AS which_column_matched
FROM ...
: