精华内容
下载资源
问答
  • 解释一下表id与表字段不对应,例如: xxx表 id name 1 张三 2 李四 3 王五 //表id与表字段不对应,按正常来说我们查询数据查出来时id=1、name=张三,id=2...在做一个删除的操作时删除一条数据时,发现要删除的

    解释一下表id与表字段不对应,例如:

    xxx表
       id    name
        1    张三 
        2    李四
        3    王五 
    //表id与表字段不对应,按正常来说我们查询数据查出来时id=1、name=张三,id=2、name=李四,id=3、name=王五
    //遇到一个bug它查询出来的数据时id=1、name=李四,id=2、name=王五,id=3、name=张三
    //不一定是往后面推了一位,只是单纯的id与字段名不一致。
    

    在做一个删除的操作时删除一条数据时,发现要删除的数据没有删掉,而是删掉了另外一条数据。我起初的认为是获取的要删除数据的主键id不正确,但我打开数据库查看时,发现我要删除的数据已经删除了,但是页面的显示却显示的不是主键id那一行数据而是其他行的数据。
    如下图是我要删除数据的表:
    在这里插入图片描述
    如下图是我查询出来的数据,因为是多表查询,查询出来的是中间表的主键id和关联表(song表)的name
    在这里插入图片描述
    如下图是我的歌曲表
    在这里插入图片描述
    所以我猜想是我的查询出现了问题。为了验证我的猜想我去测试了一下新增数据,发现在数据库新增的数据没有问题,但在页面查询展示却是数据不对应。
    这是我查询的方法

    @GetMapping("/selectListsong")
        public List<Map<Object,Object>> selectListsong(@RequestParam("id") Integer id){
            //根据表字段查询数据
            Map<String, Object> columnMap=new HashMap<>();
            columnMap.put("song_list_id",id);
            List<ListSong> gg = listSongService.listByMap(columnMap);
            //创建一个集合,通过for循环取出ListSong表中歌曲的id
            List<Integer>songids=new ArrayList<>();
            for (int i=0; i<gg.size();i++){
                songids.add(gg.get(i).getSongId());
            }
            //通过id的集合查询数据数据
            List<Song> nn = songService.listByIds(songids);
    
            List<Map<Object,Object>> hh=new ArrayList<>();
    
            for (int i=0; i<gg.size();i++){
                Map<Object,Object> kk=new HashMap<>();
                kk.put("id",gg.get(i).getId());
                kk.put("name",nn.get(i).getName());
                hh.add(kk);
            }
            return hh;
        }
    

    总体上是没有什么问题的,当初做查询是只顾着考虑中间的表的主键id,新增和删除中间表的主键id数量都会发生变化,但与中间表相关联的歌曲表如果你没执行相应的操作(去新增和删除歌曲)歌曲的数量是不会变的。

    //在以上方法中的这一步
    //在主键id数量发生变化时,没有考虑到歌曲表
    //所以我们要加个条件使其中间表的song_id会等于歌曲表的主键id
    for (int i=0; i<gg.size();i++){
                Map<Object,Object> kk=new HashMap<>();
                kk.put("id",gg.get(i).getId());
                kk.put("name",nn.get(i).getName());
                hh.add(kk);
            }
    //=========改进后======
    for (int i=0; i<gg.size();i++){
       Map<Object,Object> kk=new HashMap<>();
       kk.put("id",gg.get(i).getId());
       for (int j=0;j<gg.size();j++)
       if(gg.get(i).getSongId().equals(nn.get(j).getId())){
          kk.put("name",nn.get(j).getName());
       }
    //多加了一层for循环使其遍历出来的id与值name相对应
    
    展开全文
  • 原因:今天在项目中,用到的class类比数据库表多一个字段,查询报错(不是原生SQL)。 代码如下: public PageInfo<T_ADC_SamplingTask_Product> GetSamplingTaskListByPage(PredicateGroup pg, IList<...

    原因:今天在项目中,用到的class类比数据库表多一个字段,查询报错(不是原生SQL)。

    代码如下:

    public PageInfo<T_ADC_SamplingTask_Product> GetSamplingTaskListByPage(PredicateGroup pg, IList<ISort> sorts, int pageIndex, int pageSize)
            {
                DbClient dbClient = new DbClient();
                return dbClient.Get<T_ADC_SamplingTask_Product>(pg, sorts, pageIndex, pageSize);
            }

    其中类如下:

    public class T_ADC_SamplingTask_Product
        {
            public string ID { get; set; }
            public string Status { get; set; }
            public string StatusStr
            {
                get
                {
                    switch (this.Status)
                    {
                        case "0":
                            return "Unprocessed";//未处理
                        case "1":
                            return "Processed";//完成
                        default: return "Unknown";//其它:未知
                    }
                }
                set { }
            }
        }

    原因是返回给前端,可以不用再循环给状态赋值。

     

    解决方案:

    public class T_ADC_SamplingTask_ProductMapper : ClassMapper<T_ADC_SamplingTask_Product>
        {
            public T_ADC_SamplingTask_ProductMapper()
            {
                Table("T_ADC_SamplingTask_Product");
                Map(m => m.StatusStr).Ignore();
                AutoMap();
            }
        }

    Map(m => m.StatusStr).Ignore();

     

    更多资料,参考Dapper官网:
    https://dapper-tutorial.net/zh-CN/knowledge-base/51529447/

    展开全文
  • 现在手头开发的项目中,有一个用户资料完整度.笨的办法就去比较查询出来对象属性为空的个数....或许可以用sql实现这种功能,,[B]即用一条SQL语句统计出指定表下面所有字段为空的该表字段数.不知道该字段默认值是否...
    现在手头开发的项目中,有一个用户资料完整度.笨的办法就去比较查询出来对象属性为空的个数.得出一个比值.我想.或许可以用sql实现这种功能,,[B]即用一条SQL语句统计出指定表下面所有字段为空的该表字段数.不知道该字段默认值是否也需要排除.[/B] [/COLOR] .用的数据库是Oralce.请教论内大牛出手,不知道能否实现

    Table:  
    USER_INFO{
       USER_ID              VARCHAR2(40)                    not null,
       USER_NICKNAME        VARCHAR(20)                     not null,
       USER_FIRST_NAME      VARCHAR(20),
       USER_LAST_NAME       VARCHAR(30),
       USER_PASSWORD        VARCHAR(40)                     not null,
       USER_EMAIL           VARCHAR(60),
       USER_QUESTION        VARCHAR2(200),
       USER_ANSWER          VARCHAR2(50),
       USER_PHOTO_PATH      VARCHAR(150),
       USER_SEXY            INT                            default 0 not null,
       USER_PROVINCE        VARCHAR(60),
       USER_COUNTRY         VARCHAR(60),
       USER_INDUSTRY        VARCHAR(100),
       USER_OCCUPATION      VARCHAR(60),
       USER_CITY            VARCHAR(60),
       .........
    }

    抱歉.表达不够清楚.请各位见谅,我也是在试试是否可以用这种方法实现,所以思路没很好表达出来.
    要的结果是:

    判断某条记录中所有为空的字段数.
    如刚才的USER_INFO表
    我要判断其主键USER_ID='12345678' 该条记录中都为空的字段个数
    如USER_INFO表中有十个字段:
    USER_ID='12345678' 这条记录中有对应三个字段不为空.那么我们的统计结果就是7.即该条记录中有七个字段为空.谢谢这么多热心的朋友.非常感谢.....[/COLOR]

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/404101/viewspace-156999/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/404101/viewspace-156999/

    展开全文
  •  业务需求:查询2015年全国、全行业的某终端在用个数、最大负荷、用电量和终端覆盖率。  详细描述:结果以表格形式显示,“全国”列均显示“全国”;行业分为八大行业,该列显示各行业名称,如化工、冶金等;

           开发过程中,由于自己的sql经验不足,而有些问题通过搜索描述起来又比较复杂,或者问题与结果文不对题,因此写该系列博客,希望通过不断的积累为自己和读者提供一些参考。


           业务需求:查询2015年全国、全行业的某终端在用个数、最大负荷、用电量和终端覆盖率。

           详细描述:结果以表格形式显示,“全国”列均显示“全国”;行业分为八大行业,该列显示各行业名称,如化工、冶金等;在用终端数、最大负荷、用电量和终端覆盖率均读表即可。

           该查询过程涉及到三张表:

           q_online_monitorstat(终端表)

      

           pub_region(地区表)

           

           pub_rade(字典表)

                                             

           终端表含地区的代码(code)外键和终端使用情况;地区表含地区code、名称等对照信息;字典表含行业类别代码和对应名称。

           备注:sql语句中66代表全行业;86代表全国。


           困难点:三张表的字段中并没有“全国”和“全行业”这几个字,要拼出这样的信息并返回到前台又必须在sql中解决。

           解决办法:用Case…When…Then语句,表示那个字段,在何种情况下,实现什么样的效果。

           实例:

           

    (SELECT CASE q.ORG_CODE WHEN 86 THEN '全国' end orgName,CASE q.TRADE_CODE WHEN 66 THEN '全行业' end traName,q.MONITOR_NUM,q.MAX_FH,q.YDL,q.COVER_RATE  FROM q_online_monitorstat q WHERE q.TRADE_CODE=66 and q.ORG_CODE=86 and q.`STATUS`=1 and q.YM=2015) 
    UNION
    (SELECT c.SHORT_NAME,b.`name`,a.qysl,a.fh,a.ydl,a.fgl 
    FROM  
    (SELECT SUM(q.MONITOR_NUM) qysl,q.MAX_FH fh,SUM(q.YDL) ydl,q.COVER_RATE fgl,q.TRADE_CODE type,q.ORG_CODE xcode,q.YM data FROM q_online_monitorstat q WHERE  q.`STATUS`=1 and SUBSTR(q.YM,1,4)=2015 and q.ORG_CODE ='86' GROUP BY q.ORG_CODE,q.TRADE_CODE )a, 
    (SELECT t.ID id,t.NAME name FROM pub_rade t WHERE t.LEVEL=7)b, 
    (select ORG_CODE,SHORT_NAME from pub_region where ORG_CODE='86')c   
    WHERE a.type=b.id and c.ORG_CODE=a.xcode limit 0,10);
    

          如图:

           

          上述语句就能实现文章开头中所要求的功能,有兴趣的同学可以随便找两张表尝试一下。


    展开全文
  • 问题描述:使用jpa对数据库表进行查询时,表中字段 类型为char,在该字段插入一个字符串“123456789654”,在使用jpa查询时,只能获取到字符串第一个“1”,因为char是 定长的字段,查询时超过范围,只能取到范围内...
  • 需求,有一个表字段:id Type Imei 三个字段。 我有一个list类型的id,字符串type,统计imel个数。 我每次查询传前两个参数,统计imei个数,只返回一个统计个数结果。 如果每次用代码调用dao层去查询数据库,id...
  • 最近有一个开发需求,大致需要先使用主表,或主表和几张子表关联查询出ID(主键)及一些主表字段,然后再用这些ID查找最多10张表中对应的记录,主表记录大约2000万,每张子表的记录均为百万以上,最多可能会有5000...
  • 出现场所:多表union连接,其中一个表字段比另一个多 出现原因:一般是修改了union中的其中一个表的select字段,其他表没改,所以报这个错错误
  • 1.不指定目标表的插入字段,则要求来源表的 查询字段数量 = 目标表字段数量#目标表的字段 = 来源表1的字段 INSERT INTO 目标表 SELECT * FROM 来源表1 ; #目标表的字段 = 3 ,来源表2的字段 &gt;= 3...
  • 千里之堤毁于蚁穴,很多小bug往往是影响程序运行的关键 ibatis 小bug :ibatis查询集合有多对象,但是对象都为空。 对于这问题,开始也有点摸不着头脑,经过调试...其实也就是实体Bean的属性和数据表字段不对应...
  • 最近有一个开发需求,大致需要先使用主表,或主表和几张子表关联查询出ID(主键)及一些主表字段,然后再用这些ID查找最多10张表中对应的记录,主表记录大约2000万,每张子表的记录均为百万以上,最多可能会有5000...
  • 注意这操作必须保证两张表字段相同,字段数据类型也相同。注:下边的几连接查询涉及到笛卡尔积的概念,即如果存在两张表,第张记录为n条,另一张表的记录为m条,那么笛卡尔积得出的记录就是n*m条;如果...
  • 最近有一个开发需求,大致需要先使用主表,或主表和几张子表关联查询出ID(主键)及一些主表字段,然后再用这些ID查找最多10张表中对应的记录,主表记录大约2000万,每张子表的记录均为百万以上,最多可能会有5000...
  • 测试组验证数据库中某表边界设置的时候发现一个问题, 使用A地址的服务器,表字段可以支持50个汉字,但是使用B地址的数据库服务器,表字段不支持50个汉字 经过测试组核实两个数据库的表结构是完全一样的 【问题...
  • union 联合查询注入是指通过将多条查询语句的结果合并为一个结果 [首先判断是否存在注入点] (https://blog.csdn.net/weixin_44925883/article/details/116005768) 整型注入 id=1 正常 id =1’异常 id=1 and 1=1 ...
  • 查询某一张表字段对应的字段 1、表结构如下图 2、简单描述一下,invited_by就是推荐人的UID, 其实就是别的用户的UID,可能推荐了多个人,都在同一个表中。 3、我要查询实现的目的是:分组查询所有用户推荐了多少人...
  • 大数据查询优化方案

    2014-05-14 14:59:50
    以前大数据量的解决方案是:把数据分批查出来,次性查出来是没有什么好的解决办法。6 like 必定扫全表7 硬件:升级服务器,有这么多数据的应该不是...12 表字段尽量小,尽量回避blob,text;varchar最好也少用 13
  • MySQL-快捷查询

    2019-09-30 17:29:44
    3.查看一个表的大小 4.查看某个数据库所有表的大小 5.查看库的大小,剩余空间的大小 6.查找关于锁 information_schema使用 1.查看各个库下的表数据大小 2.查看各个数据库的数据大小 3.查看实例中...
  • java web实现分页查询

    2021-03-26 14:08:43
    分页会用到一个封装的PageTool工具,由它完成分页的核心操作。 开发工具:intellij IDEA 核心技术:JSP+Servlet+C3P0 据 库:Mysql5.7 以下是c3p0所需jar包,没有jar包,关注微信公众号源码客栈后,在右菜单...
  • 两张表字段一样,数据量一样,不同在于主键的设置上。一个ProjectID对应多个TicketNo,TicketNo唯一,任意字母和数字的组合。主要的频率很高的查询类似:select * from dbo.EmptyTicket where projectid = 243 and ...
  • 表a和表b是2个不同的表,通过字段1关联,分别统计的结果是字段2和字段3(字段2和字段3是不同的字段,比如一个是物料数一个是任务),将统计的结果分别排序,然后再按照排序的结果分别赋予顺序权重值1-6,然后根据...
  • 4.生成表字段以豆号分割 字段1,字段2.... 可自定义换行数量 5.显示表的详细信息,字段长度。可直接在查询结果中显示。 6.对查询内容导出EXCEL,高级结果可快速导出。后台处理不会卡程序。在导出大量的数据时可以...
  • COALESCE关键字的使用

    2019-08-08 13:16:00
    以下sql语句基于mysql1、查询一个列总和,如果没有数据或者NULL返回0表字段中有一个字段:公里(f_gls),统计总的公里 COALESCE (sum(f_gls), 0) distance 2、查出最大值 表字段中有一个字段:模块i...
  • sql中Count函数的用法

    千次阅读 2013-11-29 17:24:40
    Count 函数 计算从查询返回的记录。...expr 中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是 SQL合计函数).您可以计算任何种类的数据,包含文本数据。 说明
  • Count 函数

    2009-03-26 09:11:00
    Count 函数计算从查询返回的...expr 中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是 SQL合计函数).您可以计算任何种类的数据,包含文本数据。说明可以使用 Count
  • 解决json显示日期带T的问题。

    千次阅读 2018-07-18 10:00:04
    刚才显示数据的时候遇到一个日期里面带T的问题,就是天数跟小时之间出现了一个T。 表字段里面也没有这个T,后来查询度娘,是因为json处理的时候没有格式化。 解决方法:  IsoDateTimeConverter timeFormat = ...
  • 表结构设计想法

    2005-12-30 12:54:00
    如果一个表字段数太多,可以拆分为两个或多个表,主表保存主要要使用到的字段,其它表保存比较少用到的字段。 像新闻类的表,如果经常需要使用内容的摘要,可以建一个小字段(如varchar2(200))单独保存摘要可以使用...
  • 存储过程遍历

    2020-01-15 17:36:02
    需求:达梦数据库,每个省份有对应的一张表,effective_11 ~ effective_65 差不多30多个表,里边存储的企业数据,现在要写一个存储过程,遍历查询这么多表并且求个数,最后以(地区code、数量)的方式插入到一个新表...

空空如也

空空如也

1 2 3 4 5 6
收藏数 102
精华内容 40
关键字:

查询一个表字段个数