ä½ å å¤ä»½ä¸ä¸ï¼æ§è¡ä¸ä¸è¾¹è¿æ¡
追é®æ§è¡è¿ä¸ªè¯å¥ï¼è½å é¤ [ åé¢çå符串ï¼ä½é£äºä¸å« [ çè®°å½ï¼åå é¤äºå ¨é¨å符ã
追çä½ çæææ¯æäºæ°æ®ä¸å¸¦[å§ï¼
é£å°±
update 表å set å段=replace(å段,substring(å段,charindex('[',å段),len(å段)-charindex('[',å段)+1),'') where å段 like '%[%'追é®ä¸ºæ éèµ·è§ï¼æå äºä¸ä¸ªæ¡ä»¶ï¼where id=100 and å段 like '%[%'ãä½æ¯ä¸è½å é¤ [ åé¢çå符串ãä¸ç¥ä¸ºä»ä¹ï¼
追çä½ é£ä¸ªæ¯åªæå个æ¬å·ï¼è¿æ¯ä¸å¯¹æ¬å·æ¯å®æ´çï¼
ä½ è½ç½åç¹å ç§ä¸åçæ°æ®åï¼
æ¯ä¸å¯¹å®æ´çæ¹æ¬å·ï¼æ¹æ¬å·éé¢æ¯ä¸ç»IPå¼ï¼æ¹æ¬å·åé¢æ¯æ±åç¨æ·åï¼2ï¼4个æ±åã
追çæè¿æ²¡é®é¢å
æå°±é便åäºä¸ªæ°æ®
select replace('zhang[192,1023,34]',substring('zhang[192,1023,34]',charindex('[','zhang[192,1023,34]'),len('zhang[192,1023,34]')-charindex('[','zhang[192,1023,34]')+1),'')è¿æ ·æ¯ä¼æä¸æ¬å·éçä¸è¥¿ä»¥åä¸æ¬å·ç»å»æçï¼åªä¿çåè¾¹çé£ä¸ªzhang
追é®é£æ¯ä¸æ¯âå段å like '%[%'ãâå¤ææé®é¢ï¼
å 为æäºè®°å½åªæç¨æ·å没ææ¹æ¬å·ï¼æäºè®°å½æç¨æ·åä¹ææ¬å·å¸¦IPå¼ï¼æçç®çæ¯è¦æé£äºææ¬å·çIPå¼å»æï¼è®©ææè®°å½åªæç¨æ·åã
ä½ å
select replace(å段,substring(å段,charindex('[',å段),len(å段)-charindex('[',å段)+1),'') from 表å
ççä½ è¿äºè®°å½æ¯å¦é½ç¬¦åä½ è¦æ´æ¹åçé£ç§å½¢å¼ï¼å¨ä¸è¡çè¯ï¼æä½ ï¼ä½ æ¥æ¶ä¸ï¼è¿æ ·é®æ¥é®å»å¥½éº»ç¦ï¼è¿è§£å³ä¸äºé®é¢ï¼æµè§å¨å³ä¸è§
返回“'instr' 不是可以识别的函数名”
追答上面的是Oracle 的写法,
SQL Server 写法应该是这样的:
update table set user=substring(user,1,charindex('[',user)-1)
亲测,OK
不同的数据库中 定义的关键字略有不同,写法上也是稍有差异
有问题欢迎提问,满意请采纳!