我已经对此进行了如此多的研究,但大多数帖子都不明白我的意思。如何在查询中执行多个数据库列?
我有一个名为users的表和两个名为wallet_cash和bank_cash的列,然后我在我的admin cp中有一张表,其中包含大部分现金。我想这样做ORDER BY wallet_cash + bank_cash
由他们订购两个加在一起的变量,但我该怎么办呢?
到目前为止我的尝试
$result = mysql_query("SELECT * FROM users ORDER BY wallet_cash + bank_cash desc LIMIT 4");
但是这只会产生相同的结果,并且不会添加bank_cash,所以就像你刚刚放置ORDER BY wallet_cash
答案 0 :(得分:2)
在您的选择中将两个字段添加到一起,并使用AS
将其指定为另一个值。然后,您可以按新创建的列进行排序。
$result = mysql_query(SELECT *, (wallet_cash + bank_cash) AS total_cash FROM users ORDER BY total_cash desc LIMIT 4");
答案 1 :(得分:2)
如果问题中的查询运行,则问题是数据或您的期望。查询:
SELECT *
FROM users
ORDER BY wallet_cash + bank_cash desc
LIMIT 4;
应该做你想做的事。一个明显的潜在问题是NULL
值。如果任一值为NULL
,则表达式将评估为NULL
。也许这对你有用:
SELECT *
FROM users
ORDER BY coalesce(wallet_cash, 0) + coalesce(bank_cash, 0) desc
LIMIT 4;