比如一張表: artile (id,type,content); type:1表示文藝類,2表示小說類,3表示傳記,4表示傳說,等等5,6,7,8 表數據: id type content 1 3,1 dfasdfasdf 2 1,3,6,8 dfasdf 3 6,8,9 add 現在要找出3傳記類的artile記錄 mysql: select * from artile where find_in_set('3',type); oralce 語句實現: select * from artile da where instr(','||type||',',',3,')<>0; (原理:將1,3,6,8轉為 ,1,3,6,8,然后找出 ,3,的位置 將3,1轉為 ,3,1,然后找出 ,3,的位置 則<>0的即為存在,返回記錄) 用自定義一個find_in_set的oracle function 來解決 create or replace function find_in_set(arg1 in varchar2,arg2 in varchar) return number is Result number; begin select instr(','||arg2||',' , ','||arg1||',') into Result from dual; return(Result); end find_in_set; 則:select * from artile where find_in_set('3',type)<>0; mysql可接受0或其它number做為where 條件,oracle只接受表達式做為where 條件