当前位置: 首页 > 面试题库 >

对SQL子查询的结果使用“ LIKE”

孙成益
2023-03-14
问题内容

以下查询对我来说绝对正常:

SELECT * From Customers
WHERE Customers.ContactName = (SELECT FirstName
                               FROM Employees as E, orders as O
                               WHERE <condition>
                               LIMIT 1);

但是,如果我使用LIKE而不是=与子查询的结果进行比较,则不会得到任何结果。如何LIKE '%%'在上述查询中使用?


问题答案:

首先,这个查询 应该 不会是工作的罚款:

SELECT *
From Customers
WHERE Customers.ContactName = (SELECT FirstName
                               from Employees as E, orders as O
                               WHERE LIMIT 1);

因为WHERE LIMIT 1不正确的SQL。并且,您应该学习使用正确的join语法。大概,您打算:

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, '%')
             );

这与查询没有完全相同的作用。它做一些更合理的事情。它会确定子查询中是否有 任何
匹配项,而不是比较子查询中的一个随机名称。对于查询来说,这似乎是一个更合理的意图。



 类似资料:
  • 问题内容: 我非常确定我们不能将LIMIT子句用于我想做的事情-因此想确定是否还有其他方法可以实现此目的。 我有一个表,其中捕获了哪个用户访问了哪个商店。每次用户访问商店时,都会在此表中插入一行。 一些领域是 shopping_id(primary key) store_id user_id 现在,我想要的是-对于给定的一组商店,找到访问该商店的最大次数的前5位用户。 我可以一次在1个商店中进行以

  • 背景:我有一个目录,其中包含许多导入SQL服务器的文件。 任务:创建PowerShell脚本,该脚本将拾取此目录中的文件,并使用SQL查询中的文件名。 最终目标:除了显示文件名之外,显示SQL结果,但显示的结果集也应该显示服务器中没有条目SQL文件。类似于SQL服务器查询中的。 Powershell代码 到目前为止完成的工作:我已经能够使用Get-ChildItem获取文件名并循环它们以获取查询结

  • 我在sqlite查询结果的子查询中遇到问题。当执行下面的查询时,成功返回Sqlite数据库中的结果,但当运行程序时,它不返回任何值。我在下面的程序中做错了什么。请给我一些建议。 查询: java程序:

  • 问题内容: 我想知道是否可以限制SQL请求的结果? 例如,最多只返回以下内容的50行: 谢谢。 问题答案: 是的,这是可能的。这在数据库引擎之间有所不同。 Postgres: SQL Server: …

  • 问题内容: 无论如何,SQL Server中是否可以确定结果集中Mgmt Studio的查询中查询返回的数据的MEGS大小? 问题答案: 您可以打开客户端统计信息(“查询”菜单,“包括客户端统计信息”),该统计信息提供了执行查询时从服务器返回的字节数。

  • 问题内容: 我想进行一个查询,该查询将返回我的实体以及与其关联的实体之一的数量。例如: 我的Contact实体具有一个名为FormsCount的属性,但由于没有在表中命名的列,因此未映射该属性。是否可以编写一个LINQ查询,使我返回具有填充的其他FormsCount属性的Contact实体? 另外,如果可以在单独的字段中获取FormsCount值,并且可以将其手动复制到实体,我会很高兴。查询的结果