我有一列包含字符串:
aaa_1
aaa_11
我需要查询以 . 结尾的字符串_1
。我尝试了以下方法: select col from table where col like %_1
; _1
但是查询给了我以and结尾的字符串_11
。我该如何纠正这个?
我有一列包含字符串:
aaa_1
aaa_11
我需要查询以 . 结尾的字符串_1
。我尝试了以下方法: select col from table where col like %_1
; _1
但是查询给了我以and结尾的字符串_11
。我该如何纠正这个?
试试这个:
select col from table where col like '%\_1'
字符_
是一个快乐的,像%,但它只匹配一个字符,所以你必须用它来转义它\
见这里:http ://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like
你会想要使用更多与子字符串相关的东西。
尝试使用 where 子句,例如:
SELECT col from table WHERE RIGHT(col, 2) = '_1'
您应该转义%
并_
添加反斜杠\
,因为它们是 mysql 中的通配符:
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
String | Description
\% | Matches one “%” character
\_ | Matches one “_” character
其中许多会选择诸如%_12
or之类的东西%_111121
。确保您测试了各种案例,以确保这些SELECT
语句为您提供了正确的子集。
SELECT col FROM table WHERE col REGEXP '_1[[:>:]]'
您可以快速使用此查询过滤掉以特定字符结尾的字符串。
下面的查询输出将给出所有以“er”结尾的名称。
select column_name
from table
where column_name regexp '.*er$';