mysql\\t不希望转义怎么办?

fine_username  定义的值为   公司名\用户名.刚那有人名姓谭。结果 公司名\tanyongling

出现了\t.导致SQL被转义了.


select * from 表1 where user = '${fine_username}'  


batfpd 发布于 2020-9-24 09:37
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
LarryAbbyLv5中级互助
发布于2020-9-24 09:42(编辑于 2020-9-24 10:37)

刚才试了可以查呢

select * from 表1 where concat('fanruan\',username) = '${replace(fine_username,'\t','\\t')}

1.png

  • batfpd batfpd(提问者) 我这样写的不行 select * from t1 where cancat(\'fanruan\\\\\',username) = ${fine_username}
    2020-09-24 09:52 
  • LarryAbby LarryAbby 回复 batfpd(提问者) 你直接用我发你的不行吗?你这样写的我没太看懂什么意思,${fine_username}应该是字符,要用单引号括起来的,前面还拼接了一段?
    2020-09-24 09:56 
  • LarryAbby LarryAbby 回复 batfpd(提问者) select * from 表1 where concat(\'fanruan\\\',username) = \'${replace(fine_username,\'\\t\',\'\\\\t\')}
    2020-09-24 10:35 
最佳回答
0
指间沙Lv6中级互助
发布于2020-9-24 09:39(编辑于 2020-9-24 09:56)

fine_username  取得是登录名。参考这个https://help.fanruan.com/finereport/doc-view-1847.html


SELECT concat('公司名称','\','用户名称') FROM userinfo where username='${username}'

  • batfpd batfpd(提问者) 客户要求用户定义结构为 \"公司名\\用户名\" 所以fine_username取的值例如 \"fanruan\\zhangsan\"
    2020-09-24 09:51 
  • 指间沙 指间沙 回复 batfpd(提问者) 那你就查出来。。。sql里面查出来啊。。把公司查出来,把人员名字查出来,再拼接不就好了,。
    2020-09-24 09:53 
最佳回答
0
shirokoLv6资深互助
发布于2020-9-24 09:46

\t不想被转义就\\t不然就\\\t

试到可以为止233

  • batfpd batfpd(提问者) fine_username存的值是 \"公司名\\用户名\" 这是一个整体。里面没法加多加一个\\.
    2020-09-24 09:49 
  • shiroko shiroko 回复 batfpd(提问者) 那你可能搞不回来了fine_username 里存的就已经是制表符了,而不是存了\\t。。你可以输出长度看看\\t那个位置是不是合起来只占了一个长度。。从底层改数据模式,重头再来吧,反斜杠换斜杠
    2020-09-24 10:11 
最佳回答
0
krystal033Lv7高级互助
发布于2020-9-24 09:54
改成\\\或者\\\\


  • 5关注人数
  • 800浏览人数
  • 最后回答于:2020-9-24 10:37
    请选择关闭问题的原因
    确定 取消
    返回顶部