我正在尝试在表格中搜索具有两个特定列的特定值组合的条目。
我在使用一个条件执行搜索时没有问题:
SELECT *
FROM Table
WHERE [artist_id] IN ('ID1', 'ID2', etc)
但我想补充第二个条件,如下:
AND WHERE [track_name] IN (NAME1', 'NAME2', etc)
一些注意事项:
" artist_id"和" track_name"都被格式化为nvarchar," track_name"采取单个词或短语的形式。
每个" artist_id"有多个条目。和" track_name,"但两者的所有组合都是独一无二的。
那么,我如何将这些条件组合成一个查询?
以下是代码片段:
SELECT *
FROM [Music].[dbo].[echonest_tracks]
WHERE [artist_id] IN ('AR03U0G1187B9B1D35', 'AR03U0G1187B9B1D35', etc)
AND [track_title] IN ('Location', 'Cape Vibes Got 'em?', 'Feeling Good (Instrumental Remix)', 'How my heart by you', etc)
答案 0 :(得分:1)
我认为这是您正在寻找的组合:
SELECT *
FROM [Music].[dbo].[echonest_tracks]
WHERE
([artist_id] = 'AR03U0G1187B9B1D35' AND [track_title] IN ('Location', 'Cape Vibes Got 'em?', 'Feeling Good (Instrumental Remix)')
OR
([artist_id] = 'AR03U0G1187B9B1D35' AND [track_title] IN ('How my heart by you', etc))
答案 1 :(得分:0)
你快到了。
SELECT *
FROM Table
WHERE [artist_id] IN ('ID1', 'ID2', etc)
AND [track_name] IN ('NAME1', 'NAME2', etc)
应该这样做。
对于查询字符串中的单引号,请参阅以下答案: How do I escape a single quote in SQL Server?
您需要将单引号加倍才能将其置于查询字符串中。