2

列にこのデータがあります

Steffi | ND Baumecker | Cassy

上記のいずれかが別の列に存在するかどうかを調べるクエリを実行したいと思います

その他のコラムの例(アーティストがコラム名)

Artist
Steffi
Derrick Carter
Ben Klock
Craig Richards

ここで LIKE が機能するとは思わないので、一致したときに「Artist」列からアーティスト名を返すためにどのクエリを使用できるか疑問に思っています。上記の例では「Steffi」が返されます。

| の前後のスペースも削除する必要がありますか? 最初の列で?

ありがとう!

4

1 に答える 1

4

あなたの問題を正しく理解していれば、列の値を使用して行をフィルタリングし、別の列でこれらの値を検索したいですか?

SELECT a.first_name, a.last_name, a.nickname
FROM artist AS a
WHERE a.related_nickname IN (
    SELECT sa.nickname
    FROM artist AS sa
    WHERE sa.popularity > 30
)

MySQL ドキュメント: http://dev.mysql.com/doc/refman/5.1/en/any-in-some-subqueries.html

複雑なタスクを達成しようとしているようです。いくつかのことを試してみることをお勧めします。

  • サブクエリは便利ですが、クエリが非常に遅くなるため、2 つのクエリを使用すると速度が向上する場合があります。最初のクエリはフィルタリングに使用される値を選択し、2 番目のクエリは行を検索します。

  • 文字列でフィルタリングする場合は、テーブルでインデックスを使用することを検討してください: http://dev.mysql.com/doc/refman/5.1/en/create-index.html

于 2013-03-11T04:41:51.180 に答える