我有一个包含字符串的列:
aaa_1
aaa_11
我需要查询以_1
结尾的字符串。我尝试了以下方法:
从表格中选择col,其中col为%_1
;
但该查询为我提供了以_1
和_11
结尾的字符串。我怎么能纠正这个?
答案 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[[:>:]]'