
mysql遇到反斜杠要转义处理:MySQL的转义字符
“\”
MySQL识别下列转义字符:
\0
一个ASCII 0 (NUL)字符。
\n
一个新行符。
\t
一个定位符。
\r
一个回车符。
\b
一个退格符。
\'
一个单引号(“'”)符。 SQL LIKE里查询有下划线'_'或是'%'等值的记录,直接写成like 'XXX_XX',则会把'_'当成是like的通配符
。
例如搜索 select from user_all_tables where table_name like '%%%' 会将表中所有数据检索出来
Android SQL中暂时发现''%''为通配符
SQL里提供了 escape子句来处理这种情况,escape可以指定like中使用的转义符是什么,而在转义符后的字符将被当成原始字符,这和C里的'\'很像,但是escape要求自定义一个转义符,而不是指定了'\’字符。如:
select from user_all_tables where table_name like 'YW__%' escape '_'
含义是查出当前用户表下所有以'YW_'开头的表,其中第一个'_'是转义符,第二个是被转义的字符,等效可以写成:
select from user_all_tables where table_name like 'YW\_%' escape '\'
这里 如果直接搜索通配符例如设置 escape '_' 直接搜索 _ SQL语句为: select from user_all_tables where table_name like '%_%' 这时会将 含%内容全部搜索出来 ,这里现行解决方案为两条SQL语句
Stringcontains()判断搜索内容是否含有'%'
若含有则使用 select from user_all_tables where table_name like '%%%' escape '_'
不含则使用 select from user_all_tables where table_name like '%%%'
原文链接以上就是关于如何处理


评论列表(0条)