概述
首先,此查询不应该正常工作:
SELECT *
From Customers
WHERE Customers.ContactName = (SELECT FirstName
from Employees as E, orders as O
WHERE LIMIT 1);
因为WHERE LIMIT 1不是正确的SQL.而且,您应该学会使用正确的连接语法.据推测,你打算:
SELECT c.*
From Customers c
WHERE c.ContactName = (SELECT FirstName
FROM Employees as E JOIN
Orders as O
ON . . .
LIMIT 1
);
你可以想象在子查询中添加LIKE而不是=和’%’:
WHERE c.ContactName LIKE (SELECT CONCAT('%', FirstName, '%') . . .
但我会用EXISTS写这个:
SELECT c.*
From Customers c
WHERE EXISTS (SELECT 1
FROM Employees as E JOIN
Orders as O
ON . . .
WHERE c.ContactName LIKE CONCAT('%', FirstName, '%')
);
这与查询完全不同.它做了更合理的事情.它不是比较子查询中的一个随机名称,而是确定子查询中是否存在任何匹配.这似乎是查询更合理的意图.
最后
以上就是笨笨小鸭子为你收集整理的mysql like子查询语句_mysql – 使用’LIKE’和SQL子查询的结果的全部内容,希望文章能够帮你解决mysql like子查询语句_mysql – 使用’LIKE’和SQL子查询的结果所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复