全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1380
推到 Plurk!
推到 Facebook!

SQL 語法一問

答題得分者是:cashxin2002
avex
初階會員


發表:19
回覆:49
積分:43
註冊:2003-03-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-20 19:17:05 IP:61.221.xxx.xxx 未訂閱
各位先進, 我的資料表 table1 有幾個欄位 checked , enable_times, use_enabled, last_status_time 我要如何用一個 SQL 語法使得.... 如果 table1 裡的所有資料的 checked 是 true 的話, 那麼, 該筆資料的 enable_times 加一, 且 use_enabled 設為 true, 然後 last_status_time 設為現在的時間? 記得, 是使用 SQL 語法, update 每筆在 table1 的資料 which checked 是 true 的哦.. 先跟大家說聲謝謝
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-20 19:28:49 IP:63.84.xxx.xxx 未訂閱
您好﹗    Update Table1 Set enable_times=enable_time+1, use_enabled='true', Last_status_time=Now where checked='true';    P.S 忘記考慮[Now]函數會抓出日期和時間(08/20/2003 下午 05:43:08)﹐一般來講﹐日期的格式是10個字元﹐比如﹕08/20/2003﹐如果只需抓出日期﹐不需要時間的話﹐可參考如下﹕ Update Table1 Set enable_times=enable_times+1, use_enabled='true', Last_status_time=SubString(Now,1,10) where checked='true'; //SubString(Now,1,10)抓出Now中第一個字元為起始位置﹐長度為10的值 如果資料庫為Access﹐請將SubString改為Mid 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/08/20 19:57:40
------
忻晟
avex
初階會員


發表:19
回覆:49
積分:43
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-20 20:45:18 IP:61.221.xxx.xxx 未訂閱
對不起小弟 SQL 不熟, 但是, 各record 的 enable_times 欄位各加一可以這樣子寫嗎 ? ---> "enable_times=enable_time 1" 我是用 access 沒錯, 得到的錯誤訊息是 "參數enable_times沒有預設值。" 不知道哪裡出錯, 如果真能這樣寫就太好了~~ ^_^
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-20 20:52:52 IP:63.84.xxx.xxx 未訂閱
您好﹗    首先﹐enable_times=enable_time 1這種SQL語法只能針對數值欄位(Record)﹐您的enable_times欄位應該是數值形態吧﹗ 至于參數enable_times沒有預設值﹗這句出錯信息﹐請您檢查一下SQL中此欄位名enable_times是否有寫錯﹒ 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
avex
初階會員


發表:19
回覆:49
積分:43
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-20 21:10:07 IP:61.221.xxx.xxx 未訂閱
對不起小弟再附加問一個再接下來一步的小問題: 除了以上的工作外, 在我的 table2 裡面有欄位 status_time, FID. 其中 FID 對映到 table1 的 ID 欄位, ID 是主索引, 也就是 User ID 的意思. 若今天我在 update 以上工作時也想要把 update 前, 在 table1 的 status_time , 複製一份到 table2 的 status_time by 各個不同的 ID(這樣我才可以查到歷史記錄) 時 SQL 要怎麼下?
avex
初階會員


發表:19
回覆:49
積分:43
註冊:2003-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-20 21:21:00 IP:61.221.xxx.xxx 未訂閱
第一個問題找到原因了, 小弟偷懶因為從網頁上co下來 enable_times=enable_time 1 , 所以 enable_time 少一個s, 而且 'true' 要寫成 true 不曉得這個做對嗎? 是否正常?
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-20 21:21:07 IP:63.84.xxx.xxx 未訂閱
引言: 對不起小弟再附加問一個再接下來一步的小問題: 除了以上的工作外, 在我的 table2 裡面有欄位 status_time, FID. 其中 FID 對映到 table1 的 ID 欄位, ID 是主索引, 也就是 User ID 的意思. 若今天我在 update 以上工作時也想要把 update 前, 在 table1 的 status_time , 複製一份到 table2 的 status_time by 各個不同的 ID(這樣我才可以查到歷史記錄) 時 SQL 要怎麼下?
您好﹗ Update table1, table2 Set table2.status_time=table1.status_time where table2.FID=table1.ID 參考看看﹗ 歹勢! 以上紅色處漏寫了! 也可以寫成: Update table1 a, table2 b Set b.status_time=a.status_time where b.FID=a.ID ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/08/20 22:16:00
------
忻晟
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-20 21:42:35 IP:63.84.xxx.xxx 未訂閱
引言: 第一個問題找到原因了, 小弟偷懶因為從網頁上co下來 enable_times=enable_time 1 , 所以 enable_time 少一個s, 而且 'true' 要寫成 true 不曉得這個做對嗎? 是否正常?
您好! [use_enabled]是Access中的[是/否]形態欄位吧,那樣的話,欄位值(true和false)兩端就不需要加單引號, 如果是的話, 那您的寫法就沒有錯, 小弟原以為這個欄位是字串形態的, 所以在兩端加上引號了. ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
avex
初階會員


發表:19
回覆:49
積分:43
註冊:2003-03-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-08-20 21:48:52 IP:61.221.xxx.xxx 未訂閱
這二個動作我其實是要一次做完, 能不能夠寫成同一個 SQL 指令?
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-08-20 22:06:45 IP:63.84.xxx.xxx 未訂閱
引言: 這二個動作我其實是要一次做完, 能不能夠寫成同一個 SQL 指令?
您好! 一次完成兩個資料表的Update SQL, 可能沒有辦法喔! 小弟淺見, 參考看看! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
系統時間:2024-05-20 15:23:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!