Mysql 其中多列相加超过16
我正在尝试提取所有有工程师的记录,并且总得分为16分或更高 价值、质量、服务、友好、响应时间都在同一个表中 我正在尝试添加所有这些,并执行一个WHERE 这就是我到目前为止得到的Mysql 其中多列相加超过16,mysql,sql,Mysql,Sql,我正在尝试提取所有有工程师的记录,并且总得分为16分或更高 价值、质量、服务、友好、响应时间都在同一个表中 我正在尝试添加所有这些,并执行一个WHERE 这就是我到目前为止得到的 SELECT *, value_money+quality_service+friendliness+response_time AS overall FROM feedback WHERE engineer LIKE '%Chris Gauden%' AND overall < 16 ORDER BY date
SELECT *,
value_money+quality_service+friendliness+response_time AS overall
FROM feedback
WHERE engineer LIKE '%Chris Gauden%'
AND
overall < 16
ORDER BY date DESC
LIMIT 0, 15
不能在WHERE子句中使用别名。
您必须使用全价值的资金+优质服务+友好性+响应时间组合。您不能在WHERE子句中使用别名。 您必须使用全价值的资金+优质服务+友好性+响应时间组合。别名不能用于WHERE。要么
SELECT *,
value_money+quality_service+friendliness+response_time AS overall
FROM feedback
WHERE engineer LIKE '%Chris Gauden%'
AND
value_money+quality_service+friendliness+response_time < 16
ORDER BY date DESC
LIMIT 0, 15
或
别名不能用于WHERE。要么
SELECT *,
value_money+quality_service+friendliness+response_time AS overall
FROM feedback
WHERE engineer LIKE '%Chris Gauden%'
AND
value_money+quality_service+friendliness+response_time < 16
ORDER BY date DESC
LIMIT 0, 15
或
不确定您使用的数据库是什么,但请尝试以下操作:
SELECT *,
value_money+quality_service+friendliness+response_time AS overall
FROM feedback
WHERE engineer LIKE '%Chris Gauden%'
AND
SUM(value_money+quality_service+friendliness+response_time) < 16
ORDER BY date DESC
LIMIT 0, 15
不确定您使用的数据库是什么,但请尝试以下操作:
SELECT *,
value_money+quality_service+friendliness+response_time AS overall
FROM feedback
WHERE engineer LIKE '%Chris Gauden%'
AND
SUM(value_money+quality_service+friendliness+response_time) < 16
ORDER BY date DESC
LIMIT 0, 15
因为total不是该表中的一列,所以不能在where子句中引用它 您可以这样做:
SELECT * FROM
(
SELECT *,
value_money+quality_service+friendliness+response_time AS overall
FROM feedback
WHERE engineer LIKE '%Chris Gauden%'
) AS ComputedTable
WHERE
overall < 16
ORDER BY date DESC
LIMIT 0, 15
因为total不是该表中的一列,所以不能在where子句中引用它 您可以这样做:
SELECT * FROM
(
SELECT *,
value_money+quality_service+friendliness+response_time AS overall
FROM feedback
WHERE engineer LIKE '%Chris Gauden%'
) AS ComputedTable
WHERE
overall < 16
ORDER BY date DESC
LIMIT 0, 15
您的服务器可能不支持该功能。如果是这样的话,我可以想出两个选择。子查询:
SELECT * FROM (
SELECT *, value_money+quality_service+friendliness+response_time AS overall
FROM feedback
WHERE engineer LIKE '%Chris Gauden%') AS t
WHERE overall < 16
ORDER BY date DESC
LIMIT 0, 15
或者重复这个等式:
SELECT *,
value_money+quality_service+friendliness+response_time AS overall
FROM feedback
WHERE engineer LIKE '%Chris Gauden%'
AND
value_money+quality_service+friendliness+response_time < 16
ORDER BY date DESC
LIMIT 0, 15
您的服务器可能不支持该功能。如果是这样的话,我可以想出两个选择。子查询:
SELECT * FROM (
SELECT *, value_money+quality_service+friendliness+response_time AS overall
FROM feedback
WHERE engineer LIKE '%Chris Gauden%') AS t
WHERE overall < 16
ORDER BY date DESC
LIMIT 0, 15
或者重复这个等式:
SELECT *,
value_money+quality_service+friendliness+response_time AS overall
FROM feedback
WHERE engineer LIKE '%Chris Gauden%'
AND
value_money+quality_service+friendliness+response_time < 16
ORDER BY date DESC
LIMIT 0, 15
最简单的解决方案是将条件移动到having子句:
这是一个MySQL扩展,在其他数据库中不起作用。最简单的解决方案是将条件移动到having子句:
这是一个MySQL扩展,在其他数据库中不起作用。谢谢大家的帮助。我已经解决了,谢谢大家的帮助。我已经解决了,谢谢,我用了第一个例子。