日期:2014-05-18  浏览次数:20532 次

sql如何查询字段值是条件的一部分
如题。。模糊查询 select * from Table where name like '%张%' 只是查询条件是字段值的一部分的吧?

我现在想查询字段值是条件的一部分,比如我的条件集合是 ('12','34','56','78','90') 而我的字段可能是12,可能是34 也可能是 12,34


我原来的SQL写的是 where 字段 in result 其中result 就是我得到的条件集合,但是这样只能查询含有集合中的一个值的,有多个值的字段就不行了。于是想到了模糊查询,但好像又不太对。求赐教啊。。。

------解决方案--------------------
SQL拼接呀 小喷油
参考..
不知道发了多少次了拉- -
C# code
/// <summary>
        /// 根据日期,资源名称,资源描述查询资源信息
        /// </summary>
        /// <returns></returns>
        public DataSet FN_SerchByDateAndType(Guid FolderId, NRModel.File model, string createdate, string endate)
        {
            string strSql = "select * from t_File where 1 =1 and FolderId=@FolderId";
            string strWhere = "";
            if (!string.IsNullOrEmpty(model.FileNam))
            {
                strWhere += " and FileNam like @FileNam";
            }
            //if (!string.IsNullOrEmpty(model.Decription)k)
            //{
            //    strWhere += " and Decription like @Decription";
            //}
            if (!string.IsNullOrEmpty(createdate) || !string.IsNullOrEmpty(endate))
            {
                strWhere += " and CreateOn between @createdate and @endate order by ModefyOn desc";
            }
            strSql += strWhere;
            SqlParameter[] parameters = {
                                new SqlParameter("@FolderId", SqlDbType.UniqueIdentifier),
                                new SqlParameter("@FileNam", SqlDbType.NVarChar, 256),
                                new SqlParameter("@createdate", SqlDbType.NVarChar),
                                new SqlParameter("@endate", SqlDbType.NVarChar)
                        };
            parameters[0].Value = FolderId;
            parameters[1].Value = "%" + model.FileNam + "%";
            //parameters[1].Value = "%" + model.Decription + "%";
            parameters[2].Value = createdate;
            parameters[3].Value = endate;
            return DbHelperSQL.Query(strSql, parameters);
            //SqlParameter[] parameters = new SqlParameter[4];
            //parameters[0] = new SqlParameter("@FileNam", model.FileNam);
            //parameters[1] = new SqlParameter("@stardate", createdate);
            //parameters[2] = new SqlParameter("@enddate", endate);
            ////执行存储过程
            //return DbHelperSQL.RunProcedure("P_UserSerch", parameters, "t_File");
        }

------解决方案--------------------
select * from Table where name like '%张%' ||name like '%12%' || name like '%34%'
------解决方案--------------------
讲result分成单个的,然后

where 字段=result1 or 字段=result2 or 字段=result3

where部分用for语句来循环得到
------解决方案--------------------
难道我误解了- -`
------解决方案--------------------
楼主人呢?
------解决方案--------------------
探讨
如题。。模糊查询 select * from Table where name like '%张%' 只是查询条件是字段值的一部分的吧?

我现在想查询字段值是条件的一部分,比如我的条件集合是 ('12','34','56','78','90') 而我的字段可能是12,可能是34 也可能是 12,34


我原来的SQL写的是 where 字段 in result 其中res……