gpt4 book ai didi

php - 如何通过一个查询检查多个表中是否存在行?

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

我有三个表,我想查看其中任何一个表中是否存在一行。

这是我的三个疑问。如何将它们合二为一?

$dbh->prepare("SELECT id FROM users WHERE email = :email");
$dbh->prepare("SELECT id FROM employees WHERE email = :email");
$dbh->prepare("SELECT id FROM teachers WHERE email = :email");

if(!$row) { // If row not found
// continue with registration
}

最佳答案

您可以使用UNION 查询。如果用户在多个表中具有不同的 id 值,这将返回多行,但因为您只需要知道是否存在一行或多行就可以了。

SELECT id FROM users WHERE email = :email
UNION
SELECT id FROM employees WHERE email = :email
UNION
SELECT id FROM teachers WHERE email = :email

或者,您可以使用 EXISTS 表达式从查询中获取简单的是/否结果:

SELECT EXISTS (SELECT * FROM users WHERE email = :email)
OR EXISTS (SELECT * FROM employees WHERE email = :email)
OR EXISTS (SELECT * FROM teachers WHERE email = :email)

如果您有兴趣了解电子邮件地址位于哪个表中,您可以修改 UNION 查询以返回该信息:

SELECT 'users' AS `table`, id FROM users WHERE email = :email
UNION
SELECT 'employees', id FROM employees WHERE email = :email
UNION
SELECT 'teachers', id FROM teachers WHERE email = :email

关于php - 如何通过一个查询检查多个表中是否存在行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55564587/

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