mysql查询时关于结果集中存在_~\问题怎么解决
select * from userInfo where uname like '%TT%' 查询出来的结果是ok的
但是如果是select * from userInfo where uname like '%T_T%' 结果中就有问题,包括 like '%san~%' 和 like '%gren\%'
userInfo表中 uname 的值有 TTai t_t 0T_T0 san~qiang sanqiang gerenyouxi gren\youxi
[解决办法]
\~和\\,转义都是用斜杠
[解决办法]
通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]
或者
[!charlist]
不在字符列中的任何单一字符
[解决办法]
~ 应该不需要,你直接查。
\ 改成 \\ like '%gren\\%'
[解决办法]
mysql> create table test(a varchar(30));Query OK, 0 rows affected (0.34 sec)mysql> insert into test values('TTai'), ('t_t'), ('0T_T0'), ('san~qiang'), ('sanqiang'), ('gerenyouxi'), ('gren\\youxi');Query OK, 7 rows affected (0.08 sec)Records: 7 Duplicates: 0 Warnings: 0mysql> select * from test;+------------+| a |+------------+| TTai || t_t || 0T_T0 || san~qiang || sanqiang || gerenyouxi || gren\youxi |+------------+7 rows in set (0.02 sec)mysql> select * from test where a like '%T_T%';+-------+| a |+-------+| t_t || 0T_T0 |+-------+2 rows in set (0.00 sec)mysql> select * from test where a like '%san~%';+-----------+| a |+-----------+| san~qiang |+-----------+1 row in set (0.00 sec)