看起来相同的两个 sql 语句,为什么第一条查询不到数据,有哪位大神知道原因
1 moen 2022-07-15 10:53:26 +08:00 via Android ![]() 字符串里掺杂了不可见字符吧 |
![]() | 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 的。 |