我在列
中有这些数据Steffi | ND Baumecker | Cassy
我想查询以查找是否存在上述任何一列
其他列的示例(艺术家是列名)
Artist
Steffi
Derrick Carter
Ben Klock
Craig Richards
我认为LIKE不会在这里工作,因此想知道在匹配时我可以使用什么查询从“艺术家”列返回艺术家名称 - 所以在上面的示例中将返回“Steffi”。
我是否还需要删除|之前和之后的空格在第一栏?
谢谢!
答案 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