用于检查列中的任何单元格是否与一组给定字符串匹配的SQL查询。

时间:2013-03-11 01:22:18

标签: mysql

我在列

中有这些数据
Steffi | ND Baumecker | Cassy

我想查询以查找是否存在上述任何一列

其他列的示例(艺术家是列名)

Artist
Steffi
Derrick Carter
Ben Klock
Craig Richards

我认为LIKE不会在这里工作,因此想知道在匹配时我可以使用什么查询从“艺术家”列返回艺术家名称 - 所以在上面的示例中将返回“Steffi”。

我是否还需要删除|之前和之后的空格在第一栏?

谢谢!

1 个答案:

答案 0 :(得分: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

您似乎正在尝试完成一项复杂的任务,我建议您尝试一些事情。

  • 子查询很有用但会使查询速度变慢,因此使用两个查询可能会加快速度。第一个查询将选择将用于过滤的值,第二个查询将搜索行。

  • 如果您按字符串过滤,请考虑在表格中使用索引:http://dev.mysql.com/doc/refman/5.1/en/create-index.html