MYSQL where 或语句未按预期工作
我正在尝试计算此查询中的行数,但是它没有按预期工作,这会返回一个额外的行,它应该是 12,但它是 13。
$numPhotos = mysql_num_rows(mysql_query("
SELECT albums.id
FROM albums, albumData
WHERE
(albumData.id=albums.albumID OR albums.albumID=0)
AND
albums.userID=$id
AND albums.state=0
AND albumData.state=0
"));
当我删除 OR 语句部分,并且不计算行时albumID=0,返回11。albumID为0的行只有一行,但它算作两行?
$numPhotos = mysql_num_rows(mysql_query("
SELECT albums.id
FROM albums, albumData
WHERE
albumData.id=albums.albumID
AND
albums.userID=$id
AND albums.state=0
AND albumData.state=0
"));
I'm trying to count the number of rows in this query, however it's not working as expected, this returns an extra row, it should be 12, but it's 13.
$numPhotos = mysql_num_rows(mysql_query("
SELECT albums.id
FROM albums, albumData
WHERE
(albumData.id=albums.albumID OR albums.albumID=0)
AND
albums.userID=$id
AND albums.state=0
AND albumData.state=0
"));
When I remove the OR statement part, and not count the rows with albumID=0, it returns 11. There is only one row where the albumID is 0, but it counts it as two?
$numPhotos = mysql_num_rows(mysql_query("
SELECT albums.id
FROM albums, albumData
WHERE
albumData.id=albums.albumID
AND
albums.userID=$id
AND albums.state=0
AND albumData.state=0
"));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试使用 JOIN: 编写查询,
或者
这可以解决您的问题吗?
已编辑:
试试这个
Try to write query using JOIN:
or
Does this solve your trouble?
EDITED:
Try this
只需将查询列替换为 count(*),如下所示:
此查询将返回一行 &列,它将包含查询生成的行数。
Just replace your query columns with count(*), like this:
This query will return one row & column and it will contain the number of rows generated by the query.