2015-05-04 57 views
0

喜用別名如何在WHERE和操作LIMIT大家

我有我的查詢,但它不工作,我知道爲什麼,但我問你,如果你能幫助我,我會解釋。 請求不是邏輯,但它不是問題。

SELECT (5+5) AS result FROM house WHERE id = (5+5); [WORK] 
SELECT (5+5) AS result FROM house LIMIT (5+5); [#1064 - You have an error in your SQL syntax] 
SELECT (5+5) AS result FROM house WHERE id = result; [#1054 - Unknown column 'result' in 'where clause'] 

你有什麼想法解決這個問題嗎?我明白錯誤,但我問我是否可以用其他方式做。

謝謝。

+0

我不知道你的問題是什麼。你有一個工作查詢,爲什麼你不想使用它? – AdamMc331

+0

[可以在MySQL的WHERE子句中使用別名嗎?](http://stackoverflow.com/questions/200200/can-you-use-an-alias-in-the-where-clause-in -mysql) – AdamMc331

+0

McAdam331:我無法使用HAVING,因爲我需要將結果與ID進行比較... – JonasGame

回答

0

http://sqlfiddle.com/#!9/7a2c7/2

SET @result = 5+5; 
SELECT id, @result 
FROM house 
WHERE id = @result; 

http://sqlfiddle.com/#!9/7a2c7/8

SELECT id, @idx:=(5+5) as result 
FROM house 
HAVING id = result; 

http://sqlfiddle.com/#!9/7a2c7/10

SET @limit:=3; 
SET @s = CONCAT('SELECT id, @idx:=(5+5) as result 
FROM house 
LIMIT ',@limit); 
PREPARE stmt1 FROM @s; 
EXECUTE stmt1; 
+0

嘿,謝謝你的JS代碼。我的查詢是:SELECT id,x,y,z,SQRT(((100-x)*(100-y)))距離房屋WHERE距離<5.它會和你的第一個例子一樣用於變量嗎?對不起,我目前無法嘗試。謝謝你的幫助Alex。 – JonasGame

相關問題