0

如何创建查询以检查与表的比较,而不是需要两个或更多匹配,无论哪个但不相同。我想创建一个重复的列

Col1 Col2
 A    A
 B    B
 C    C

LIKE CONCAT('%',table.col1,'%')并检查两者: LIKE CONCAT('%',table.col2,'%') 我只是不确定如何确保第二个不LIKE等于第一个,因为因为它们是等价的,所以上面的两个语句都会返回正数。但是我需要标记 AB 而不是 AA 之类的项目

4

2 回答 2

1

使用这种方法,您可以添加另一个AND子句来强制执行此操作:

-- ...
WHERE foo LIKE CONCAT('%',table.col1,'%')
AND foo LIKE CONCAT('%',table.col2,'%')
AND table.col1 <> table.col2

不过,我不确定使用重复列是最好的方法。

于 2013-01-07T22:15:37.267 回答
0

好的,试试这样的:

select s.*
from sentences s join
     words w
     on s.sentence like concat('%', w.word, '%') 
group by s.sentence
having count(*) > 1

这会进行连接以获取匹配项,然后过滤掉少于两个匹配项的句子。

s.*with的group by s.sentence使用使用了一个名为 Hidden Columns 的 MySQL (mis) 特性,这在这种情况下可能很有用。

于 2013-01-07T22:26:18.820 回答