作者 主題: SQL 條件查詢?  (閱讀 4006 次)

0 會員 與 1 訪客 正在閱讀本文。

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
SQL 條件查詢?
« 於: 2012-03-13 12:32 »
請問各位大大,
要怎麼取出同時有兩個條件的情況下的紀錄?
stime 是 2012-03-12 而且 etime 是null 以及 etime 是 2012-03-12的紀錄?
ID stime etime
1 2012-03-10 15:48:05 2012-03-12 10:48:05
2 2012-03-11 07:48:05 null
3 2012-03-12 08:48:05 null
4 2012-03-12 09:48:05 null
5 2012-03-12 15:48:05 2012-03-12 17:48:05
6 2012-03-12 18:45:05 2012-03-12 19:48:05



以上面的例子的話,取出的紀錄應該是 5筆
1 2012-03-10 15:48:05 2012-03-12 10:48:05 // etime 是 2012-03-12
3 2012-03-12 08:48:05 null //stime 是 2012-03-12 而且 etime 是null
4 2012-03-12 09:48:05 null //stime 是 2012-03-12 而且 etime 是null
5 2012-03-12 15:48:05 2012-03-12 17:48:05 // etime 是 2012-03-12
6 2012-03-12 18:45:05 2012-03-12 19:48:05 // etime 是 2012-03-12

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: SQL 條件查詢?
« 回覆 #1 於: 2012-03-13 13:06 »
這不是很基本的 SQL 條件查詢嗎?
你是有那兒想不通的呢?

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
Re: SQL 條件查詢?
« 回覆 #2 於: 2012-03-13 13:22 »
原來可以用or 來解決,已經解決了,感謝大大的回覆

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
Re: SQL 條件查詢?
« 回覆 #3 於: 2012-03-16 11:47 »
各位大大,
原本以為可以用OR來解決,但是好像查詢結果還是有錯誤的

stime 是 2012-03-12 而且 etime 是null 以及 etime 是 2012-03-12的紀錄?
ID      ip                           create                                           update
1      192.168.1.5            2012-03-10 15:48:05                2012-03-12 10:48:05
2      192.168.1.2              2012-03-11 07:48:05               null
3      192.168.1.3             2012-03-12 08:48:05                null
4      192.168.1.1             2012-03-12 09:48:05                null
5      192.168.1.6             2012-03-12 15:48:05                2012-03-12 17:48:05
6      192.168.1.7              2012-03-12 18:45:05                2012-03-12 19:48:05

我想查詢條件 是ip = 192.168.1.1 , 而且取出的日期限制是 (1)create是2012-03-12 而且update是null (代表資料是2012-03-12新增的資料)或是
(2) update是2012-03-12 (資料是2012-03-12更新的資料)
也就是我想取出192.168.1.1 是2012-03-12新增或是更新的資料


以上面的例子的話,取出的紀錄應該是 1筆
4      192.168.1.1             2012-03-12 09:48:05                null


所以我下的SQL查詢是:

 select * from A_TABLE  where ip = '192.168.1.1' and create like '2012-03-12 %' and update is null or update like '2012-03-12 %' ;

但是卻取出4筆
1      192.168.1.5            2012-03-10 15:48:05                2012-03-12 10:48:05
4      192.168.1.1             2012-03-12 09:48:05                null
5      192.168.1.6             2012-03-12 15:48:05                2012-03-12 17:48:05
6      192.168.1.7              2012-03-12 18:45:05                2012-03-12 19:48:05

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4047
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
Re: SQL 條件查詢?
« 回覆 #4 於: 2012-03-16 11:56 »
是 「什麼東西」 和  「什麼東西」  要 OR 的

請用括弧把他包起來

EX:  (  ip=A or  ip=B )
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫