使用子查询时,遇到令人沮丧的错误“子查询返回超过 1 行”并不罕见。 ”当子查询预期返回单个值但生成多行时,就会出现此问题。要解决此错误并成功执行查询,了解子查询的正确用法至关重要。
在给定的示例中,使用子查询返回多行,然后在主查询中引用这些行来设置id 字段。但是,这种方法会导致上述错误,因为 = 只能计算返回单个值的子查询。
要解决此问题,您应该使用 IN 运算符,该运算符旨在计算返回多个值的子查询价值观。通过使用 IN,您可以指定 id 字段应与子查询返回的任何值相匹配。
以下示例演示了 IN 的正确用法:
SELECT * FROM table WHERE id IN (multiple row query);
例如,如果子查询返回值1、2、3,则id字段会被设置为1或2或3,根据子查询返回的多个值有效过滤结果子查询。
通过使用 IN,您可以有效处理返回多行的子查询,确保您的查询成功执行,而不会遇到“子查询返回多于 1 行”的错误。
以上是如何修复 SQL 中的'子查询返回超过 1 行”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!