MySQL语法不能在列中选择"_"数据

Anv*_*dla 2 mysql sql

如果有人能帮到我,我很高兴.

我有一个表格Table1和列XXXXXX,数据如下

XXXXXX
---------
1
2
1
2
x_y
A_12
3
12345_abcd
Run Code Online (Sandbox Code Playgroud)

我希望输出为

XXXXXX
---------
1
2
3
Run Code Online (Sandbox Code Playgroud)

我尝试了以下查询

select DISTINCT XXXXXX from Table1 where XXXXXX NOT LIKE '%_%';
Run Code Online (Sandbox Code Playgroud)

也试过了 SELECT DISTINCT XXXXXX FROM Table1 WHERE CHAR ('_','XXXXXX')=0;

上面的查询是从表中获取所有内容.任何人都可以帮我解决这个问题.

spe*_*593 5

尝试:

WHERE  XXXXXX NOT LIKE '%\\_%' ESCAPE '\\' 
Run Code Online (Sandbox Code Playgroud)

"转义"字符告诉MySQL,下划线将被解释为文字下划线字符,而不是通配符.(在LIKE表达式中,下划线(_)是匹配任何单个字符的通配符,就像percent(%)是匹配零个,一个或多个字符的通配符一样.

注意,其他字符可以用作转义字符; 它不一定是反斜杠.反斜杠本身就是MySQL中的转义字符,因此将反斜杠识别为LIKE的转义字符,我们必须使用双反斜杠" \\".这使得MySQL将其识别为单个反斜杠字符.

例如,我们可以使用克拉" ^"字符作为转义字符,如下所示:

WHERE  XXXXXX NOT LIKE '%^_%' ESCAPE '^'
Run Code Online (Sandbox Code Playgroud)

类似地,转义字符可用于%使用LIKE运算符搜索文字百分号,如下所示:

WHERE foo LIKE '%\\%%' ESCAPE '\\'
Run Code Online (Sandbox Code Playgroud)

(这将在foo中搜索百分号字符的出现.)


作为NOT LIKE运算符的替代,我们可以使用'NOT REGEXP'运算符来排除foo包含下划线字符的行,如下所示:

WHERE foo NOT REGEXP '_'
Run Code Online (Sandbox Code Playgroud)