程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql/sqlserver where in傳參數的問題

mysql/sqlserver where in傳參數的問題

編輯:MySQL綜合教程

mysql/sqlserver where in傳參數的問題   參數:@p0=1,2,3,4   1.我們普通的查詢如下:   select *from table_name  t where t.field1in (1,2,3,4,...);   如果需要傳參數的話   select *from table_name  t where t.field1in (@p0);   這樣最終的sql是select *from table_name  t where t.field1in (‘1,2,3,4,...‘);   只能查出t.field1=1的結果(具體為什麼能查出第一個記錄待研究)   要想所有參數都能查出的話這樣是不行的,這時候需要使用第二中解決方案   2.find_in_set  使用這個方法來搞定   select *from table_name  t where  find_in_set(t.field1,'1,2,3,4');   下面是相關排序和sqlserver的解決方案   MySQL/sqlserver查詢in操作 查詢結果按in集合順序顯示 select * from ibs6_terminal_adv_inf where id in (16,14,15) order by field(id,16,14,15) select * from ibs6_terminal_adv_inf where id in (16,14,15) order by find_in_set(id,'16,14,15') select * from ibs6_terminal_adv_inf where id in (16,14,15) order by substring_index('16,14,15',id,1) 結果就是按順序顯示了 sqlserver 用以下的語句 select * from ibs6_terminal_adv_inf where id in (16,14,15)  order by CHARINDEX(','+ltrim(id)+',',',16,14,15,')"   這個方法沒有測試過,有測試過的同學可以發一下結果   注意了,裡面有很多逗號,一個都不能少哦~~~  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved