查询选择以特定字符结尾的字符串

时间:2012-12-13 21:09:54

标签: mysql

我有一个包含字符串的列:

aaa_1
aaa_11

我需要查询以_1结尾的字符串。我尝试了以下方法: 从表格中选择col,其中col为%_1; 但该查询为我提供了以_1_11结尾的字符串。我怎么能纠正这个?

5 个答案:

答案 0 :(得分:26)

试试这个:

select col from table where col like '%\_1'

字符_是一个快活的,比如%,但它只匹配一个字符,所以你必须用\

来逃避它

见这里:http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like

答案 1 :(得分:10)

你会想要使用更多与子字符串相关的东西。

尝试使用where子句:

SELECT col from table WHERE RIGHT(col, 2) = '_1'

答案 2 :(得分:0)

你应该通过添加反斜杠%来转义_\,因为它们是mysql中的通配符:

http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html

String |     Description
\%     |     Matches one “%” character
\_     |     Matches one “_” character

答案 3 :(得分:0)

其中许多内容会选择%_12%_111121等内容。请确保测试各种情况,以确保这些SELECT语句为您提供了正确的子集。< / p>

答案 4 :(得分:0)

SELECT col FROM table WHERE col REGEXP '_1[[:>:]]'