2016-02-08 170 views
-3

我被困在这个查询。需要一些MySQL查询的帮助

我的问题是在语法。我似乎无法找到匹配“LIKE”子句中的记录的正确方法,并排除不匹配“LIKE”子句的记录。

我正在使用CASE语句,因为我需要根据LIKE条件格式化输出。

我使用的MYSQL代码示例如下。

我还包括一张图像,显示我希望如何将输出格式化。

所需输出的图像如下。

MySQL Output

SELECT DISTINCT S.SalesID, SS.Contact 
CASE CONTACT 
WHEN Contact IS LIKE '%Manuel%' 
THEN WORKS 
WHEN Contact IS NOT LIKE '%Manue%' 
THEN NO 
END AS Manuel? 
FROM Salespeople S 
LEFT JOIN Studios SS 
ON (S.SalesID = SS.SalesID) 
WHERE SS.Contact = 'Manuel Austin' Or 
SS.Contact IS NOT NULL; 
+0

投票结束TYPO以不太可能对未来读者有用的方式解决 – Drew

回答

-1

您的查询了很多语法问题。

您可以使用此查询:

SELECT S.SalesID, 
CASE WHEN ss.Contact LIKE '%Manuel%' THEN 'WORKING WITH MANUEL' 
ELSE 'NOT WORKING WITH MANUEL' END AS Manuel 
FROM Salespeople S 
LEFT JOIN Studios SS 
ON (S.SalesID = SS.SalesID) 
GROUP BY S.SalesID, 
CASE WHEN ss.Contact LIKE '%Manuel%' THEN 'WORKING WITH MANUEL' 
ELSE 'NOT WORKING WITH MANUEL' END 
ORDER BY s.SalesID 

你不应该在有关曼努埃尔或where子句中的任何检查时,该列是空的,因为你需要所有的结果,无论他们是否有曼努埃尔作为其联系。

所以你只需要左连接和用例。

+0

为什么不能?什么使用“?”对查询做什么? –

+0

谁低估了我? – sagi

+0

噢!谢谢。我正在使用mysql。 –