原文:http://blog.csdn.net/qing_gee/article/details/41646503
當你的查詢條件是一個字符串變量時,你該怎么辦,比如字符串可能是“0001ME,0002BL”,也可能是“0001ME”,那么如何根據條件得到想要的結果呢,我來告訴你instr方法的厲害之處。
1.開始的時候一直在將字符串str轉換為in函數的參數,如下
SELECT * FROM stocks_orderlist s where s.scode in ("0001ME","0002BL") LIMIT 10; SELECT CONVERT(CONCAT("\'",REPLACE("0001ME,0002BL","\,","\'\,\'"),"\'"),CHAR); SELECT * FROM stocks_orderlist s where s.scode in (CONVERT(CONCAT("\"",REPLACE("0001ME,0002BL","\,","\"\,\""),"\""),CHAR)) LIMIT 10;
雖然把str轉成了in所要的東西,但是后來想想,in的參數是一個列表集合,我及時把str轉換成了所謂的in參數的形式,但是肯定還是一個字符串,於是又忙碌了半天,有點想放棄的感覺,但是回頭想想,肯定是自己沒有找到合適的辦法,於是就找到了instr函數
2.instr函數,看幫助文檔的意思是找出substr在str中第一次出現問題,嘗試如下
SELECT INSTR("0001ME,0002BL","0003ME"); SELECT INSTR("0001ME,0002BL","0001ME"); SELECT INSTR("0001ME,0002BL","0002BL"); SELECT * FROM stocks_orderlist s where INSTR("0001ME,0002BL",s.scode);