Re: [请益] mysql空百=?

楼主: GALINE (天真可爱CQD)   2016-09-10 23:40:40
※ 引述《lovejoe7010 (shen)》之铭言:
: "这是 一串文字"
: ^这是空格
: 如果我sql select 用 test like '%这是 一串文字%'
: 或是用 test="这是 一串文字"
: 都搜寻不到!!!
: 用去空白还是取代字串都无法移除这空白
: TRIM(test) , REPLACE(test, ' ', '' )
: 字段型态是
: varchar(60) character set utf8 collate utf8_bin default NULL
: 但如果我用test like '%这是%'就可以搜寻到....
上面推文有写到,那个你以为是空白的东西不是 space 字符
实际上是什么,可能性满多的
- aaa[\v]bbb // 垂直 tab,神秘历史遗迹!#!$!%$!#
- aaa[\b]bbb // 倒退字符...对,backspace 也可以是一个字符
- aaa[烂掉的表情符号]bbb
- aaa[其他鬼东西]bbb
所以你用 aaa[space]bbb 去搜寻是搜不到东西的
要知道实际上是什么,你要把 binary 印出来才知道
我的习惯是会先存成文字档之后用 xxd 来看
如果你完全没概念怎么肉眼看 binary,那就放弃它吧,直接人力 update 掉他...
然后
- trim 是切掉左右两边的空白,中间的空白是切不掉的
- 更何况那不是空白 _(:з”∠)_
- 把 '[space]' replace 成 '[空字串]' 没有用,因为他不是 space
- mysql 的 utf8 没办法存大部分的表情符号,请想办法改成 utf8mb4
- 不过已经存烂掉的请当成救不回来 _(:з”∠)_
作者: lovejoe7010 (shen)   2016-09-11 02:41:00
大大太专业了!!非常感谢您的指导
作者: yiefaung (艾克斯卡利伯)   2016-09-12 02:46:00
欢乐给推

Links booklink

Contact Us: admin [ a t ] ucptt.com