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