[英]Proper syntax for BETWEEN in MySQL
$SQL="SELECT First_Name, Last_Name, Team, Pos, GP, G, A, (G+A) AS Points FROM stats ORDER BY Points DESC BETWEEN '$b1' AND '$b2'";
給我一個syntax error 'near 'BETWEEN '19' AND '17'' at line 1'
( 19
和17
只是用戶輸入以替換$b1
和$b2
變量(在此之間以及在此之間,等等)
有什么建議么?
您不能在該WHERE
子句中使用字段別名。 您可以做的是在WHERE
子句中再次使用您的分配,如下所示:
SELECT
First_Name,
Last_Name,
Team,
Pos, GP, G, A,
(G+A) AS Points
FROM stats
WHERE
(G+A) BETWEEN '$b1' AND '$b2'
ORDER BY Points DESC
標准SQL不允許您在WHERE子句中引用列別名。 之所以施加此限制,是因為執行WHERE代碼時,可能尚未確定列值。
MySQL文件: http : //dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html
MySQL文檔描述了BETWEEN
的語法:
expr BETWEEN min AND max
If expr is greater than or equal to min and expr is less than or equal to max,
BETWEEN returns 1, otherwise it returns 0
您的情況有兩個問題:
BETWEEN
將始終返回0。 BETWEEN
用作WHERE
子句的一部分。 例如, WHERE Points BETWEEN 17 AND 19
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.