gpt4 book ai didi

php - 如何处理在 php mysql 中返回多个值的内部查询?

转载 作者:行者123 更新时间:2023-11-29 04:09:21 25 4
gpt4 key购买 nike

如何处理在 php mysql 中返回多个值的内部查询?

例如。

SELECT value1 FROM table1 WHERE value1 != (SELECT value1 FROM table2 WHERE .....)

问题是 (SELECT value1 FROM table2 WHERE .....) 正在返回多个值。

如何解决?

请帮帮我....

最佳答案

假设您想使用子查询来限制外部查询的结果集,您可以使用 INEXISTS

SELECT value1 
FROM table1
WHERE value1 NOT IN
(
SELECT value1
FROM table2
WHERE value1 IS NOT NULL ...
)

小心 NOT IN 如果子查询返回 NULL,您将得不到预期结果(空结果集)。要么确保子查询不返回 NULL(使用适当的 WHERE 子句,要么使用 COALESCE< 将 NULLS 替换为某个值IFNULL) 或使用 NOT EXISTS

SELECT value1
FROM table1 t
WHERE NOT EXISTS
(
SELECT 1
FROM table2
WHERE value1 = t.value1 ...
)

这是 SQLFiddle 演示。 请注意,演示中的第一个查询不会返回任何行。

另一方面如果您只需要您的子查询返回唯一的值

1) 按照建议使用LIMIT 1
2) 或适当的聚合函数(MIN()、MAX()、AVG() 等)

SELECT value1 
FROM table1
WHERE value1 <>
(
SELECT MAX(value1)
FROM table2
WHERE ...
)

关于php - 如何处理在 php mysql 中返回多个值的内部查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17135573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com