2011-01-31 38 views
3

如果我有兩個LIKE子句用於兩個不同列,並且最後兩列中的一列包含針,我如何知道哪一列匹配?哪一列匹配?

+0

您需要發佈你的代碼。 – Sarfraz 2011-01-31 06:15:48

回答

1

,你可以這樣做:

SELECT 1 AS `match`, * FROM `table` WHERE col1 LIKE 'needle%' 
UNION 
SELECT 2 AS `match`, * FROM `table` WHERE col2 LIKE 'needle%' 

,並使用match知道

注:這也許可以用一個IF()

0

書面您可以使用PHP部分,檢查哪一個匹配。你這colums

if (stristr($result['col1'], $queryvar) === true) // col1 matched 
1
SELECT 
    IF(col1 LIKE 'needle%' AND col2 LIKE 'needle%', 0, IF(col1 LIKE 'needle%', 1, 2) 
    AS match, 
    * 
FROM 
    table 
WHERE 
    col1 LIKE 'needle%' 
OR 
    col2 LIKE 'needle%' 

match teklls擊:

  • 0 =兩個
  • 1 =比賽上col1
  • 2 =配上col2