我在数据库中得到一个包含斜杠字符的值。 / 例如
column_name
" ABCDEFGH XYZ IJ / KL"
SQL1
SELECT * FROM `table` WHERE `column_name` LIKE '%XYZ IJ/KL'
SQL2
SELECT * FROM `table` WHERE `column_name` LIKE '%XYZ IJ_KL'
使用SQL 1,它无法获取行但SQL2。 有谁知道为什么SQL 2成功了? 谢谢。
答案 0 :(得分:1)
_
表达式中的下划线LIKE
是注释中提到的 deceze 的通配符。它意味着任何一个角色。
\
表达式中的反斜杠LIKE
是转义字符。
如果您需要匹配下划线,请使用\_
,如果您需要匹配反斜杠,请使用\\\\
。
你似乎在你的问题中使用了正斜杠/
,它不需要转义但不匹配反斜杠..如果你的DB值包含正斜杠;查询SQL1应返回该行。