SQL in查詢語句
在數據庫中有一個pzdz 這是個字段嗎?
里面的是數字組成的字符串
是這種格式嗎?
pzdz
1,3,5,2
3,6,15,17
select * from table where pzdz like('aa,%') or pzdz like('%,aa') or pzdz like('%,aa,%') or pzdz='aa';
考慮到了
pzdz
。,aa,。
aa,。
。.,aa
aa
四種情況
笨辦法
有區別的 你測試吧
C#.Net與SQLSERVER連接語句
給你個我的一個例子,用于實現登錄功能的,自己模仿著來吧。
using System; using *c; using *entModel; using *; using *g; using *; using *; using *; using *ent; namespace BookHouseMag { public partial class Login : Form { public Login() { InitializeComponent(); } int i= 2; //密碼連續輸入三次錯誤將關閉登錄窗口,i用來記錄登錄次數 private void btnYes_Click(object sender, EventArgs e) { string userNo = *; //用戶編號 string password = *; //用戶密碼 string levels = *; if (userNo == "" || password == "") //沒有輸入用戶名或者密碼給予提示 { *("請輸入完整的用戶名和密碼", "提示", *, *ation); } else { string connString = @"Data Source=.\SQLEXPRESS;Initial Catalog=Book;Integrated Security=True"; SqlConnection connection = new SqlConnection(connString); //連接到引入的數據庫 *(); // 打開數據庫連接 string sql = *("select count(*) from [User] where workerno='{0}'and password='{1}' and level= '{2}'", userNo, password, levels); //獲取 用戶名和密碼匹配的行的數量的SQL語句 SqlCommand command = new SqlCommand(sql, connection); //創建 Command 對象 int num = (int)*eScalar(); //執行查詢語句,返回匹配的行數 if (num > 0) //如果有匹配的行,則表明用戶名、密碼和權限正確 { *("歡迎進入圖書倉庫管理系統!", "登錄成功", *, *ation); *(); //隱藏登錄窗體 MainFrm mainForm = new MainFrm();// 創建主窗體對象 if (levels == "普通管理員") //如果是普通管理員登錄,怎不能使用員工信息的功能 { *1(); //調用主函數中自己定義的函數(不能使用員工信息的供能) } else //如果是特權管理員 { *2(); //可以使用員工信息功能,調用自己定義的函數 } *it(*); //將員工編號放進主窗體,transmit()是主窗體的函數 *alog(); // 顯示窗體 *(); // 顯示窗體執行完畢后,登錄窗體關閉 } else //沒有匹配的行,表明輸入的用戶名、密碼或者輸入的權限錯誤不正確 { if (i == 0) //當i=0時,表明已經三次嘗試登錄 { *("已三次輸入錯誤,登錄界面關閉!", "提示", *, *ation); *(); //關閉登錄窗體 } else //輸入錯誤,但是沒有到三次 { *("您輸入的用戶名或密碼錯誤或者選擇了錯誤的登錄權限,還有" + i + " 次機會!", "登錄失敗", *, *ation); i = i - 1; //將i的值減1 } } *();// 關閉數據庫連接 } }。
請教一個關于SQL語句中in的相關問題
拜托,int [] cID 這個變量時。net程序里面的數組, sql=“”語句則是要放到sql2005這個dbms里面執行,他們兩個是不同的系統怎么能直接寫在sql里面??如果你要那樣實現,應該先把cID這樣的數組值先insert到一個臨時表里面,然后在sql里面這樣寫
where id in (select cID from 臨時表),
如果cID里面值不多,可以用拼字符串來實現,就是你說的那個意思,只是拼字符串的方法不對,應該是
for (i=0 ,i++ ,i{sql_str1 = convertostring(cID[i]) +','+sql_str1} ;
sql="******* where id in (" + sql_str1 +")";
最后輸出sql檢查下,如果沒問題就ok了
sql中in和exist語句的區別
兩者都能實現表功能查詢,主要區別如下:
1、適用表的類型不同。
in是子查詢為驅動表,外面的表為被驅動表,故適用于子查詢結果集小而外面的表結果集大的情況。
exists是外面的表位驅動表,子查詢里面的表為被驅動表,故適用于外面的表結果集小而子查詢結果集大的情況。
2、子查詢關聯不同。
exists一般都是關聯子查詢。對于關聯子查詢,必須先執行外層查詢,接著對所有通過過濾條件的記錄,執行內層查詢。外層查詢和內層查詢相互依賴,因為外層查詢會把數據傳遞給內層查詢。
in則一般都是非關聯子查詢,非關聯子查詢則必須先完成內層查詢之后,外層查詢才能介入。
3、執行次數不同。
IN 語句:只執行一次,確定給定的值是否與子查詢或列表中的值相匹配。in在查詢的時候,首先查詢子查詢的表,然后將內表和外表做一個笛卡爾積,然后按照條件進行篩選。所以相對內表比較小的時候,in的速度較快。
EXISTS語句:執行次數根據表的長度而定。指定一個子查詢,檢測行的存在。遍歷循環外表,然后看外表中的記錄有沒有和內表的數據一樣的。匹配上就將結果放入結果集中。
參考資料來源:搜狗百科--In操作符
參考資料來源:搜狗百科--Exists
.net直接執行sql語句
1) 語句 *("update CityChuZu set shifoudaoru=1 where city='" + new Common().GetCity() + "' and shifoudaoru=0");是錯誤的,應該定義為變量,且*格式錯誤;可改為
string sql = *("update CityChuZu set shifoudaoru=1 where city='{0}' and shifoudaoru=0", new Common().GetCity())
2)MyCityChuZu是否具有uodate方法,且update的sql語句是否(1)中的語句?按理,DbHelperSQLCity類中應有相應的execute方法執行sql語句。
sql in()語句
select * from news where keys like '%機械廠%'
呵呵,你這么寫的,肯定只能用like,in是沒辦法做的,而且in的效率也不高。
如果真的想快一點,表內的數據很多那么就分批查詢,具體怎么分批,可以考慮分區,如果沒有明顯字段就hash分區,然后在每個分區中分別查詢,這樣速度就上來了,而且查詢結果頁相對出來的快一點。
如果一定要用in,那么你這里只能是根據逗號將keys字段分成幾個字段,然后在分別用in來做,不過這樣做的話查詢的sql不會太短,我估計還沒有like快呢。
在.net中 sqlserver語句中where后面的字段前面加@是什么意思
一般這么寫還需要借助另外一個對象sqlparameter,這個對象表示對你sql中的變量處理,不談返回值,就談怎么賦值,
sqlparameter param1=new sqlpatameter("@StudentId",12);此處@StudentId表示要賦值的變量,12表示其值,這個對象創建表示給一個@StudentId變量賦值,另外幾個變量可用同樣的道理,這樣就可以組成一個sqlparameter數組,然后同你的sql語句一起傳到*的執行語句中使用。
轉載請注明出處華閱文章網 » .netsqlin語句