数据库
varphp
干货字字珠玑 一语击中
水文千言万语 不知所言
大道至简:真传一句话,假传万卷书
展开
-
go语言+lua5.1语言同步到es中遇到大数字导致精度丢失问题
lua5.3之前都会有这个问题。但是目前我们使用的go嵌入lua使用的解释器只有5.1所以这个只能靠自己转换解决。目前是用在go+lua同步es的工具上。解决方式分这几个步骤:1.go将传递给lua的14-20位的数字转换为字符串2.lua调用go往es中塞数据时再次逆转为数字,便可以保证es中 本地数据库中都是数字了,而且不丢失精度。比较简单。以下给部分代码demogo往lua中传值类型的处理func paddingTable(l *lua.LState, table..原创 2022-05-07 07:00:00 · 949 阅读 · 0 评论 -
go语言中json.Unmarshal导致大数字溢出精度问题
目前问题是出现在使用了uint64的雪花算法ID中发生的问题,在解析出数据的时候导致精度丢失。以下demo并不是使用转换为字符串方式解决。package mainimport ( "encoding/json" "fmt")func main() { var myjson string myjson = `{"id":9723275009654785}` fmt.Println("期望结果:", myjson) type myjsonStruct struct {..原创 2022-05-06 11:19:03 · 1227 阅读 · 0 评论 -
HAVING 多条件多字段连接,结合 and、or、>、=等等实现
需求描述:单规格商品在添加了多规格后,单规格需要排除,但是单规格和多单位商品依然是同时存在,仅单规格和多规格不能同时存在,需要剔除规格并以多规格为准HAVING ((t.sku_id>0 and t.goods_type=3) or (t.sku_id=0 and t.goods_type=1 or t.goods_type=2))具体还需要大家根据自己的需求修改,然后并测试保证正常使用...原创 2022-01-18 16:59:35 · 3287 阅读 · 0 评论 -
商品和属性的条件查询sql,解决根据属性查询商品筛选,通过having实现
SELECTwst_jxc_goods.goodsId,wst_jxc_goods.goodsName,wst_jxc_screening_goods_relation.relation_id,count(wst_jxc_screening_goods_relation.goods_id) countTmpFROMwst_jxc_screening_goods_relationINNER JOIN wst_jxc_goods ON wst_jxc_goods.goodsId = wst_jx.原创 2022-01-01 02:21:57 · 865 阅读 · 0 评论 -
mysql多个不同表不同结构合并查询,并集查询多个不同表结构数据,部分表结构相同,部分表结构不同的查询方式union All的实现
需求背景商品表分为三个:基础商品表【aidong_goods】、一存多品商品表【aidong_goods_unit_sku】、一品多存商品表【aidong_goods_specs_sku】基础商品表和其他两张表有关联id,并三张表部分字段不同,部分字段相同,需要根据条件过滤聚合查询出三张表的商品数据并合并!实现方式1.通过查询主商品后再查询其他关联商品缺点是不方便分页查询,还需要循环,速度和性能都可能受到较大影响2.关联查询缺点是无法直接并集拿到数据3.通过union all原创 2021-12-31 17:34:28 · 2253 阅读 · 1 评论 -
redis中的两个坑 一个随机性写入被拒绝 二是增减指定数值
1.在redis中使用脚本 调用 redis.call('time')[1] 报错如下ERR Error running script (call to f_e745355f11745192bd45376618a34bec9145653b): @user_script:1: @user_script: 1: Write commands not allowed after non deterministic commands原因与解决Redis内嵌了Lua环境来支持用户扩展功能,但是出于数据一原创 2021-05-24 12:53:56 · 1488 阅读 · 4 评论 -
redis替代mysql里token表进行登陆过期、单点登陆、更新数据、主动退出
需求需支持多终端系统的登陆有商家后台、运营后台、用户app单点登陆主动退出 清理token定时过期在token未过期时 账号基本信息变更时需及时更新token中的数据实现考虑到能通过userid反查redis中的token 并对token value值更新 需要考虑使用keys来匹配查找,但是听说keys性能不是非常好对于keys命令的性能情况 建议看下这两位大佬的文章Redis5.0改进了keys算法吗?python redis的scan_iter性能真的很差...原创 2021-05-20 00:39:58 · 676 阅读 · 1 评论