月度记录-2024-5月

73 阅读2分钟

1. mysql查询加不加''区别

select * from A where NAME_ = 0 select * from A where NAME_ = '0' 表A的字段NAME_类型是varchar,俩sql有啥区别?

不加引号,会查出来'0','0abc','abc'等数据。加了只会查出来'0'。

mysql在比较varchar和0的时候,会把0,以0开头的字符串和不以数字开头的字符串都当作0

如果查1,会得到1和以1开头的字符串

还是要加引号啊!这个特性可以用来查询以某个数字开头的字符串,但是最好别用,一般人还真不知道,最好还是去like(其实还是有差别,like0,不能把所有不以数字开头的字符串查出来)。

2. 达梦TEXT,需要TOCHAR,否则会报错

坑爹,大梦text查出来放到map里面,是一个对象,并不是字符串。这也就算了,那个对象转换返回前端的时候还报错StackOverflow,我懒得研究为什么栈溢出了,就这吧。

3. 乘以常数

计算机进行乘法运算需要更多的时钟周期,移位和加法在一个时钟周期内可以完成。所以乘法转化为加法,就可以算的快。6*x,假如x是15,可以分解为8+4+2+1,2的3次方+2的2次方+2的1次方+2的0次方。重写为x<<3+x<<2+x<<1+x,如此,分解之后乘法被转换为了移位和加法操作。

但是,我觉得还是得看新的cpu执行乘法和位运算还有多少差距,如果以后的cpu执行没啥差距了,反而是负优化。因地制宜,因时制宜,不可生搬硬套。

4. MINGW

MinGW(Minimalist GNU for Windows)是一个在Windows平台上提供GNU开发工具集的项目。它提供了一组兼容GNU工具的工具链,包括编译器、链接器和其他工具,使开发者能够在Windows环境下编译和运行类Unix的软件。

MinGW的主要作用包括:

  1. 提供GNU开发工具:MinGW包含了一系列GNU工具,如GCC编译器、GNU Binutils等,这些工具通常用于在类Unix系统上进行软件开发。
  2. 在Windows上编译Unix样式的软件:MinGW允许开发者在Windows环境下使用类Unix的编程模型和工具链来编译和构建软件,从而方便地移植和开发跨平台的应用程序。
  3. 支持开源项目:许多开源项目使用GNU工具链进行开发和构建,MinGW使得这些项目能够在Windows上进行构建和运行,从而促进了开源软件在Windows平台上的使用和发展。

总的来说,MinGW为Windows开发者提供了一种在Windows平台上使用GNU工具链进行开发的选择,使得他们能够更方便地进行跨平台开发和移植。