看起来相同的两个 sql 语句,为什么第一条查询不到数据,有哪位大神知道原因
1
moen 2022-07-15 10:53:26 +08:00 via Android 1
字符串里掺杂了不可见字符吧
|
2
Saxton 2022-07-15 10:55:08 +08:00
找个在线统计文字的 把两条 SQL 复制进去对比一下
|
3
dongtingyue 2022-07-15 10:59:48 +08:00
试过调换两个 sql 语句测试么
|
4
xiangyuecn 2022-07-15 11:04:07 +08:00
|
5
xiangyuecn 2022-07-15 11:06:50 +08:00
另外 trim 函数 也是反人类的,有些语言能去掉,有些不能😂
归根结底,还是 输入框 /编辑器 反人类,好在 chrome 控制台还是比较良心的 这种字符一眼就能看出来 |
6
sgq1128 2022-07-15 11:12:45 +08:00
零宽字符了解下
|
7
ozipin 2022-07-15 11:27:54 +08:00
不可见字符+1 ,建议对查询不到的那条语句删除首尾字符手动补全试试
|
8
lookStupiToForce 2022-07-15 11:28:14 +08:00
混编这种不可见不可打印字符的人啥居心啊,是要害人还是怕人抢饭碗啊
|
9
bruce0 2022-07-15 11:33:57 +08:00
不可见字符+1 我上次遇到过一次, 就是 windows 下的 utf-8 文件会 自动加一个 BOM, 但是 linux 不会, 就会导致两个字符,肉眼看一模一样, 但是用字符比较就会出现差别, 最终找到原因是 windows 会自动加 BOM, 最后
``` bytes.TrimPrefix(s, []byte{255, 254}) ``` 去掉就好了 |
10
Mutoo 2022-07-15 11:34:52 +08:00
另一个可能是执行 sql 的环境不一致,例如其中一个 use 了另一个 database 。
|
12
dcsuibian 2022-07-15 14:48:35 +08:00
遍历 codepoint 对比下。
我项目里都是用 utf8 without bom 的。 |