Comment puis-je compter les lignes d'une requête SELECT en tant que valeur? Tel que
SELECT FUCNTIONIMLOOKINGFOR(SELECT * FROM anothertable) AS count FROM table;
Donc, ce nombre est un entier de combien de lignes la sous-requête SELECT * FROM anothertable
Retour.
MODIFIER
SELECT p.PostPID, p.PostUID, p.PostText, p.PostTime, u.UserUID, u.UserName, u.UserImage, u.UserRep,
(
SELECT COUNT(f.FlagTime)
FROM Flags as f
JOIN Posts as p
ON p.PostPID = f.FlagPID
) as PostFlags
FROM Posts AS p
JOIN Users AS u
ON p.PostUID = u.UserUID
ORDER BY PostTime DESC
LIMIT 0, 30
SELECT ( SELECT COUNT(id) FROM aTable ) as count FROM table
Je suppose que votre exemple est une version tronquée de votre requête réelle, vous devriez donc peut-être publier ce que vous recherchez pour obtenir une requête, peut-être plus optimale.
MODIFIER
En travaillant directement depuis mon cerveau, quelque chose comme ça devrait être plus optimal.
SELECT p.PostPID, p.PostUID, p.PostText, p.PostTime, u.UserUID, u.UserName, u.UserImage, u.UserRep, COUNT(v.FlagTime) as postFlags
FROM Flags as f
JOIN Posts as p ON p.PostPID = f.FlagPID
JOIN Users AS u ON p.PostUID = u.UserUID
LIMIT 0, 30
GROUP BY p.PostPID
ORDER BY PostTime DESC
Tu peux dire
SELECT COUNT(*) FROM anothertable
qui renverra une valeur numérique, que vous pouvez utiliser dans une autre requête, comme dans la liste de sélection d'une autre requête, ou comme condition dans une autre requête.
SELECT someVariable FROM table
WHERE (SELECT COUNT(*) FROM anotherTable) > 5
OR
SELECT someVariable, (SELECT COUNT(*) FROM anotherTable) as count FROM table