簡體   English   中英

使用php / SQL從數據庫查詢信息

[英]Querying information from database using php/SQL

數據庫列

我想使用這兩列從表中選擇數據。 我想做的是選擇表格,其中月份2月和8 之間, 年份2003年和2005 之間包括2004年和2005年1月。

$number = range(3, 8);  

foreach($number as $key=> $value):
                    $where .= " Month ='$value' AND Year BETWEEN '2003' AND '2005' or " ;                   
        endforeach;
if(strlen(trim($where)) > 0)

    $where = substr(trim($where), 0, -2);`
$query = "SELECT * FROM myTable $where";

它返回以下查詢

SELECT * FROM myTable WHERE Month ='2' AND Year BETWEEN '2003' AND '2005' or Month ='3' AND Year BETWEEN '2003' AND '2005' or Month ='4' AND Year BETWEEN '2003' AND '2005' or Month ='5' AND Year BETWEEN '2003' AND '2005' or Month ='6' AND Year BETWEEN '2003' AND '2005' or Month ='7' AND Year BETWEEN '2003' AND '2005' or Month ='8' AND Year BETWEEN '2003' AND '2005'

但是我查詢的問題是它沒有選擇2004年和2005年1月。有人對如何執行此操作有想法嗎?

如下更改查詢。

SELECT * FROM myTable 
WHERE 
(Month ='2' AND Year BETWEEN '2003' AND '2005') 
or
( Month ='3' AND Year BETWEEN '2003' AND '2005')....

運算符優先級確定表達式中項的求值順序 要顯式覆蓋此順序並將術語分組,請使用括號

SELECT * FROM myTable 
WHERE ( Month >=2 AND Month <=8 AND year BETWEEN 2003 AND 2005) OR (Month=1 AND (year=2004 OR year=2005))

暫無
暫無

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

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