V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wxf666  ›  全部回复第 16 页 / 共 27 页
回复总数  529
1 ... 12  13  14  15  16  17  18  19  20  21 ... 27  
2022-09-12 18:24:22 +08:00
回复了 iseki 创建的主题 问与答 有人存身份证号时丢掉最后一位吗
@dcsuibian

修改一下:

`身份证号 / 1e5 % 1e8 < 19870912` 应该可以改成 `身份证号 % 1e13 < 1987091200000`


> 写身份证片段,然后列出所有相关的

这个需求,是不是要一直扫表了。。

实在不行,就实时转换成原身份证号再 LIKE 呗:

CONCAT(身份证号 DIV 100, MID('0123456789X', 身份证号 % 100 + 1, 1)) LIKE ...
2022-09-12 18:11:58 +08:00
回复了 iseki 创建的主题 问与答 有人存身份证号时丢掉最后一位吗
@dcsuibian 假设用『校检位视为两位数(那么身份证就是 19 位)』方法:

(`SQL` 大意,具体写要改成 `DIV`、`CAST(1e13 AS UNSIGNED)` 等)


1. 查找所有 x 省 y 市 z 区 /县 的人

- 不用索引:`身份证号 / 1e13 = 123456`

- 要用索引:`身份证号 BETWEEN 1234560000000000000 AND 1234569999999999999`


2. 查找所有 35 岁以上的人

- 不用索引:`身份证号 / 1e5 % 1e8 < 19870912`


3. 查找所有 x 省 y 市 z 区 /县 20 岁 ~ 35 岁 的人

- 要用索引:`身份证号 BETWEEN 1234561987091200000 AND 1234562002091299999`
2022-09-12 16:19:20 +08:00
回复了 iseki 创建的主题 问与答 有人存身份证号时丢掉最后一位吗
@agagega 分段存。。咋存能 < 50 位?

是想办法去除不可能存在的数字吗?

比如用 16 位来存出生年月日(足够 180 年)?
2022-09-12 16:14:14 +08:00
回复了 iseki 创建的主题 问与答 有人存身份证号时丢掉最后一位吗
@IvanLi127 @dcsuibian 一般身份证的模糊搜索,都是些啥需求呢?

- 查找所有 x 省 y 市 z 区 /县 的人?
- 查找所有 35 岁以上的人?
- 查找所有 x 省 y 市 z 区 /县 20 岁 ~ 35 岁 的人?
2022-09-12 14:54:20 +08:00
回复了 iseki 创建的主题 问与答 有人存身份证号时丢掉最后一位吗
@iseki 那就正负号代表校检位是否不为 X 呗。。比如:

- 123456789012345678 会存储为:123456789012345678
- 12345678901234567X 会存储为:-123456789012345670

需要使用 1 位符号位 + ⌈ log2(10^18) ⌉ = 1 + 60 = 61 位
2022-09-12 14:37:57 +08:00
回复了 iseki 创建的主题 问与答 有人存身份证号时丢掉最后一位吗
@iseki

> 可以是可以,主要会不直观,如果只是简单去掉最后一位,不影响以十进制方式阅读

那『校检位视为两位数(那么身份证就是 19 位)』适合你啊。比如:

- 123456789012345678 会存储为:1234567890123456708
- 12345678901234567X 会存储为:1234567890123456710
2022-09-12 14:03:25 +08:00
回复了 iseki 创建的主题 问与答 有人存身份证号时丢掉最后一位吗
其实 int64 可以完全存下,包括校检位在内的,完整身份证号:

1. 用 ⌈ log2(10^17) ⌉ = 57 位来存前 17 位数字
2. 用 ⌈ log2(11) ⌉ = 4 位来存校检位

还剩 64 - 57 - 4 = 3 位空闲


或者,校检位视为两位数(那么身份证就是 19 位),刚好可用 ⌈ log2(10^19) ⌉ = 64 位存下
2022-09-11 16:11:55 +08:00
回复了 wdc63 创建的主题 程序员 由两个整数生成一个独特的整数
@wdc63

> @LaTero 的算法应该不能保证结果是唯一的

这不就是你的 a*(b 的位数+1) + b 的二进制版么。。

要不,举个反例?
2022-09-11 15:47:32 +08:00
回复了 wdc63 创建的主题 程序员 由两个整数生成一个独特的整数
@wdc63 a, b 都在 10W 以下,那么共有 10W ^ 2 = 100 亿 种可能 > uint32 ≈ 42 亿,不可能不超出 int32 范围?
好奇,有这个需求,为啥会这样分表。。
2022-09-09 13:21:09 +08:00
回复了 wwwe 创建的主题 奇思妙想 摸鱼迎中秋,有奖猜数字
150
火绒不是有 安全工具 - 弹窗拦截 - 截图拦截 吗
2022-09-09 12:28:58 +08:00
回复了 1054850490 创建的主题 NAS 如何对文件进行查重
用 shell 写了一个:

功能:查找当前路径下所有 *.webm 文件,以文件名『 xxx 网页地址「 yyy 」.zzz 』中的「 yyy 」为分组依据,输出每组中(文件大小最小)的文件名

find . -name '*.webm' -printf '%s\t%p\n' | jq -Rsr '[capture("(?<size>\\d+)\\t(?<path>.*网页地址(?<key>.+)\\..+)"; "g")] | group_by(.key)[] | sort_by(.size | tonumber)[0].path'
2022-09-09 11:39:50 +08:00
回复了 Coolwinds 创建的主题 程序员 shell 小白请教一个脚本问题
可能 sshpass 有使用你的 stdin 吧
噢,有个变量名,4 楼改成 json_data[0][...
a[0]['rows'][0]['BillTypeOrg']

现在连 Python 基础知识都不熟悉了么。。
2022-09-07 14:53:39 +08:00
回复了 hideonwhere 创建的主题 问与答 (求助)请教一个 unbutu 删除大量文件的做法
find . -name 'xx.tar.bz2.*' -delete ?
2022-09-06 18:21:05 +08:00
回复了 simonlu9 创建的主题 程序员 mysql 怎么保证每次查出来的排名是一致的
@simonlu9 感觉和前几楼说的那样,在 ORDER BY 里加个 user_id 之类的字段就好
2022-09-06 17:41:34 +08:00
回复了 simonlu9 创建的主题 程序员 mysql 怎么保证每次查出来的排名是一致的
@simonlu9 还是没看懂。。举些例子吧,你希望是这样排名吗?

用户 ID  销售额 排名
———————————
 1  100  1
 2  100  1
 3    0  3
 4    0  3
 5    0  3
2022-09-06 17:25:03 +08:00
回复了 simonlu9 创建的主题 程序员 mysql 怎么保证每次查出来的排名是一致的
@simonlu9 啥意思。。

1. 你希望销售额相同的用户,他们的排名相同吗?

2. 你的 SQL 最里层的『 SELECT ... UNION SELECT ... ORDER BY ...』,每次获取,结果都一样吗?
1 ... 12  13  14  15  16  17  18  19  20  21 ... 27  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1663 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 16:49 · PVG 00:49 · LAX 09:49 · JFK 12:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.