我有以下 SQL 代码:
SELECT m.email
FROM members as m
WHERE exists
(
select *
from posts as p
where p.email = m.email
)
order by ads desc
我想在“exists”之前添加另一个语句,这样我就有类似的内容
SELECT m.email
FROM members as m
WHERE
(m.ads<>0)
and
exists
(
select *
from posts as p
where p.email = m.email
)
order by ads desc
但是它不起作用,还有 ads<>'0'
, ads<>('0')
, m.ads<>0
等等
为什么你认为它不起作用?
“不起作用”是指当我添加一行“ads<>0”时,查询结果没有变化(就好像我没有输入该行一样)。 如果我添加一行“ads=0” - 它会给出空结果,就好像没有值为零的字段(实际上确实存在)
最佳答案
您应该能够根据需要向 WHERE
语句添加任意数量的逻辑子句。
假设 members.ads
是整数数据类型...
SELECT m.email
FROM members m
WHERE m.ads <> 0
AND EXISTS (
SELECT 1
FROM posts p
WHERE p.email = m.email
)
ORDER BY m.ads DESC
关于php - SQL:将 EXISTS() 与其他命令一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7898050/