哪个列匹配?

时间:2011-01-31 06:12:28

标签: php mysql

如果我对两个不同的列有两个LIKE子句,并且最终两个列中的一个包含针,我如何知道哪个列匹配。

3 个答案:

答案 0 :(得分:1)

你可以做点什么:

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

并使用match了解

注意:这可能是用IF()

写的

答案 1 :(得分: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告诉您哪些列命中:

  • 0 =两个
  • 1 =匹配col1
  • 2 =匹配col2

答案 2 :(得分:0)

您可以使用PHP部分检查哪一个匹配。

if (stristr($result['col1'], $queryvar) === true) // col1 matched