首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql varchar类型字段为数字时,不带引号查询时查询结果与事实不符

    背景 今天出现了一个bug,在数据库中我们将订单表中的order_no从之前的bigint(20)改成varchar(20)后,原有的代码逻辑在进行时查询时,之前是以Long类型传参查询的。...但是同样的sql我们放到数据库中时确是只能查到一条数据。...select * from order_main where order_no='16541913435669023' 仔细观察后发现,得到正确结果的Sql,是加了引号的,代码中的sql是没有加引号的数字类型...根源 mysql5.7 查询varchar类型的数据时,不加引号,触发隐式转换导致的查询结果错误。...,因此在使用时必须仔细甄别 数字类型的建议在字段定义时就定义为int或者bigint,表关联时关联字段必须保持类型、字符集、校对规则都一致

    1.6K10

    mysql longtext 查询_mysql中longtext存在大量数据时,会导致查询很慢?

    case1: select id, name from t order by last_update_time limit 10000, 10 当content当中有大量的文本时,case1的效率极慢。...使用explain: 有content时结果: mysql> explain select id, name, last_update_time from t order by last_update_time...无content的时候,查询走的是idx_last_update_time,我猜测这个索引中包含了id,name字段,因此仅通过索引就可以获取到所需的数据,因此速度很快。...有content的时候,因为有limit 10000的语句,且无法从索引中获取content字段的内容,因此采用的全表扫描的方法。...我觉得,主要跟你的分页查询的方式有关,limit 10000,10 这个意思是扫描满足条件的10010条数据,扔掉前面的10000行,返回最后的10行,在加上你的表中有个,非常大的字段,这样必然增加数据库查询的

    4.1K20

    mysql查询结果输出到文件

    方式一 在mysql命令行环境下执行: sql语句+INTO OUTFILE +文件路径/文件名 +编码方式(可选) 例如: select * from user INTO OUTFILE '/var.../lib/mysql/msg_data.xls ' ; 注意事项: 0)可能会报没有 select command denied(没有查询权限) 或者 Access denied for user(没有...3) 生成的文件中可能会有中文乱码问题,可以在语句后面+CHARACTER SET gbk (utf8等) 例如: select * from user INTO OUTFILE '/var/lib.../mysql/msg_data.csv ' CHARACTER SET gbk; 4)如果sql查询出来的数据包含有很大的数值型数据,则在excel中这些数值数据可能会出问题,因此,可以先导出为.txt.../.csv文件格式,再复制黏贴到excel文件中(首先设置单元格格式为文本) 方式二 在登录某服务器后,采用 mysql 命令执行 ,不需要登录进mysql命令行环境下。

    7K20

    MYSQL分页查询时没有用ORDER BY出现数据重复的问题

    背景 产品反馈,用户在使用分页列表时,出现数据重复的问题,查看代码后发现对应的分页SQL并没有使用order by进行排序,但是印象中Mysql的InnoDB引擎会默认按照主键id进行排序,本地测试了一下的确出现了部分数据在不同的页都出现的问题...先说结果  如果没有指定ORDER BY语句,则SQL Server(或任何RDBMS)不保证以特定顺序返回结果。...在关系数据库中没有“自然顺序”或类似的东西(至少在我所知道的情况下)。...对于同样的一批数据,在某一个时刻顺序是一样的,随着时间变化,数据会发生变化,那么在进行查询的时候,MySQL 会尝试以尽可能快的方法(MySQL 实际的方法不见得快)返回数据。...在实际工作中,如果有查询列表展示数据的功能和需求,开发前一定要先确定数据排序的规则,这样可以避免后续出现数据查询的排序结果不同的问题。

    1.7K11

    mysql创建临时表,将查询结果插入已有表中

    我记得学数据库理论课老师说可以创建临时表,不知道mysql有没有这样的功能呢?临时表在内存之中,读取速度应该比视图快一些。然后还需要将查询的结果存储到临时表中。...A、临时表再断开于mysql的连接后系统会自动删除临时表中的数据,但是这只限于用下面语句建立的表: 1)定义字段   CREATE TEMPORARY TABLE tmp_table (      ...2)直接将查询结果导入临时表   CREATE TEMPORARY TABLE tmp_table SELECT * FROM table_name B、另外mysql也允许你在内存中直接创建临时表,...TABLE tmp_table (      name VARCHAR(10) NOT NULL,      value INTEGER NOT NULL   ) TYPE = HEAP 那如何将查询的结果存入已有的表呢...1、可以使用A中第二个方法 2、使用insert into temtable (select a,b,c,d from tablea)”;

    9.9K50

    MySQL 查询结果保存为CSV文件

    MySQL支持将查询结果直接导出为文本格式,格式如下: into outfile ‘导出的目录和文件名’ 指定导出的目录和文件名 fields terminated by...c:/test.csv文件中。...的值为null ,表示限制mysqld 不允许导入|导出 当secure_file_priv的值为具体目录 ,表示限制mysqld 的导入/导出只能发生在具体目录下 当secure_file_priv的值没有具体值时...的导入|导出做限制 如何查看secure-file-priv参数的值: show global variables ike '%secure%' ; 解决问题: windows下:修改my.ini (一般在mysql...的安装路径下,如果没有my.ini文件参考官方说明)在[mysqld]下方加入secure-file-priv=你的路径(路径中\要以/来代替否则会出错) 然后重启mysql(参考命令) 再查询secure-file-priv

    5.3K10

    MySQL 嵌套查询_嵌套查询和嵌套结果的区别

    自测题: 1、查询哪些课程没有人选修列出课程号和课程名; [code]select cno,cname from course where cno not in( select distinct cno...from sc)[/code] 2、用子查询实现如下查询: (1)查询选修了1号课程的学生姓名和所在系; [code]select sname,sno from student where sno in...( select sno from sc where cno=1)[/code] (2)查询“数据库”成绩在80分以上的学生的学号和姓名; [code]Select sno,sname From student...=sc.cno and course.cname=’离散数学’)[/code] 5、查询选修课程名为“数据库”的学生姓名(子查询) [code]select sname from student where...sno in( select sno from course,sc where course.cno=sc.cno and course.cname=’数据库’)[/code] 6、查询与张天和张琪在同一个系的学生

    4.3K20
    领券