mysql 的varchar類型小記
阿新 • • 發佈:2017-10-27
har 寫法 images post 得出 分享 沒有 長度 技術分享
參考鏈接:MySQL的varchar長度問題
今天用mysql做一個demo,創建了個表:
-- 借款表 CREATE TABLE jk ( id int(5) NOT NULL auto_increment, -- 自增ID amount int not null, -- 借款本金 remark varchar(255), -- 備註/摘要 PRIMARY KEY (`id`) ) ; insert into jk(amount,remark) values(20000,‘付張三借款‘); insert into jk(amount,remark) values(10000,‘付王小五借款‘); insert into jk(amount,remark) values(80000,‘付宇文小四借款‘); insert into jk(amount,remark) values(20000,‘付張三12ab借款‘);
由於這個表沒有人的姓名做主鍵(暫不考慮人名重復),想取出來人名,就只能對remark字段做拆解了。
當然拆解的辦法不止一種,我的思路是通過length、left、right三個函數,拆解得出借款人的姓名。
具體思路就是,通過left先取出不含“借款”的字符串str_l,再通過right函數對str_l去除"付"字。那麽就得到了中間的名字了。
然後我寫的代碼是:
-- 註意:這是錯誤寫法!!! select jk.id,jk.amount,jk.remark, left(jk.remark,length(jk.remark)-2) as ‘左邊‘,# 去掉“借款”2字 right(jk.remark,length(jk.remark)-1) as ‘右邊‘,# 去掉“付”字 right( left(jk.remark,length(jk.remark)-2), length(left(jk.remark,length(jk.remark)-2))/3-1 ) as name from jk;
看上去好像沒毛病,先取長度,“借款”是兩個字,所以減2;“付”是一個字,所以減1。菜鳥如我啊~。
然後結果卻是吃了一鯨~
mysql 的varchar類型小記