1、 問題
需要拼裝紅色部分的動態字串。 01,02,03等nsstring資料存放在nsarray,
大小是動態的。
where id in ('01','02','03')
2、解決辦法
code:
// nsarray *array....資料部分略去
nsstring *strwhere = [arraycomponentsjoinedbystring:
@"','"
];nsstring *query = [nsstringstringwithformat:
@"select * from tablename where id in ('%@')"
,strwhere];
nslog(@"strwhere*****====%@",strwhere);
nslog(@"queryis *****====%@",query);
執行結果:
2015-03-14 22:13:37.862strwhere*****====1','2','3','4
2015-03-14 22:13:39.063queryis*****====select * from tablename where id in ('1','2','3','4')
3、其它
a:字串陣列轉字串
nsarray *array = [[nsarray alloc]initwithobjects:@"01",@"02",@"03",@"04",nil ];
nsstring *str = [array componentsjoinedbystring:
@「『,'"];
b:數字陣列轉字串(去掉單引號即可)
nsstring *str = [array componentsjoinedbystring:
@「,"
];c:
字串切成陣列
nsstring *strlist = @「01,02,03,04";
nsarray *arrayitems = [strlist componentsseparatedbystring:@「,"];
Oracle動態SQL的拼裝要領
oracle的動態sql語句用起來很方便,但其拼裝過程太煩人。尤其在拼裝語句中涉及到date型別欄位時,拼裝時要加to char先轉換成字元,到了sql中又要使用to date轉成date型別和原字段再比較。www.akdy.cn 例如這樣乙個sql select and t.created to ...
SQL中條件放在on後與where後的區別
sql中on條件與where條件的區別 資料庫在通過連線兩張或多張表來返回記錄時,都會生成一張中間的臨時表,然後再將這張臨時表返回給使用者。在使用left jion時,on和where條件的區別如下 1 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。2 wh...
sql連線查詢中,where關鍵字的位置
最近一直在忙,也沒有太多時間停留下來寫部落格。晚上遇到乙個覺得很有趣的sql題,可能對初學者和我這種菜鳥會有幫助,所以決定分享給大家。由於筆者天生笨拙,且思維不嚴謹,也實在不擅長寫sql語句,高手請勿見笑,就請直接跳過本文吧。背景就不多介紹了,先建表,插入測試資料吧。字段那些都有注釋 醫生表 cre...