0

テーブルとの比較をチェックするクエリを作成するにはどうすればよいですか? 重複した列を作成することを考えました

Col1 Col2
 A    A
 B    B
 C    C

両方に対してチェックし LIKE CONCAT('%',table.col1,'%')ます。2番目が1LIKE CONCAT('%',table.col2,'%') 番目と同等ではないことを確認する方法がわかりLIKEません。これらは同等であるため、上記のステートメントの両方が肯定的に返されるためです。それでも、AA ではなく AB のような項目にフラグを立てる必要があります

4

2 に答える 2

1

With this approach, you could add another AND clause to enforce this:

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

I'm not sure that using a duplicate column is the best approach, though.

于 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

これは結合を行って一致を取得し、一致が 2 つ未満の文を除外します。

s.*with を使用group by s.sentenceすると、隠し列と呼ばれる MySQL の (誤った) 機能が使用されます。これは、この場合に役立つ可能性があります。

于 2013-01-07T22:26:18.820 に答える