簡體   English   中英

MySQL中BETWEEN的正確語法

[英]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'

1917只是用戶輸入以替換$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

您的情況有兩個問題:

  1. 由於19> 17,因此BETWEEN將始終返回0。
  2. 沒有更多上下文很難說,但是我認為在您的情況下,您想將BETWEEN用作WHERE子句的一部分。 例如, WHERE Points BETWEEN 17 AND 19

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM