我有一个包含字符串的列,如下所示:
aaa_1 aaa_11
我需要查询以_1结尾的字符串。我尝试了以下方法:从表中选择col,其中col类似%_1;但是查询给我的字符串以_1和_11结尾,我该如何更正呢?
_1
%_1
_11
kpbwa7wx1#
试试这个:
select col from table where col like '%\_1'
字符_是一个jolly,与%类似,但它只匹配单个字符,因此必须使用\对其进行转义参见:http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like
_
\
uqzxnwby2#
您可能需要使用与子字符串更相关的内容。尝试使用where子句,例如:
SELECT col from table WHERE RIGHT(col, 2) = '_1'
3pvhb19x3#
您应该通过添加反斜杠\来转义%和_,因为它们在mysql中是通配符:http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
%
String | Description \% | Matches one “%” character \_ | Matches one “_” character
htzpubme4#
这些语句中的许多语句将获得%_12或%_111121等内容。请确保测试各种情况,以确保这些SELECT语句为您提供了正确的子集。
%_12
%_111121
SELECT
niknxzdl5#
SELECT col FROM table WHERE col REGEXP '_1[[:>:]]'
kuhbmx9i6#
您可以快速使用此查询来过滤掉以特定字符结尾的字符串。下面的查询输出将给予所有以“er”结尾的名称。
select column_name from table where column_name regexp '.*er$';
ulydmbyx7#
回答得好!我的答案是从其他职位的延伸。如果要过滤掉以特定字符结尾的数据,请使用REGEXP运算符。示例:下面的查询返回结束字符为元音-的所有字符串
REGEXP
SELECT column_name FROM table_name WHERE column_name REGEXP ".*[a,e,i,o,u]{n}$" -- n = number of vowels at the end
7条答案
按热度按时间kpbwa7wx1#
试试这个:
字符
_
是一个jolly,与%类似,但它只匹配单个字符,因此必须使用\
对其进行转义参见:http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like
uqzxnwby2#
您可能需要使用与子字符串更相关的内容。
尝试使用where子句,例如:
3pvhb19x3#
您应该通过添加反斜杠
\
来转义%
和_
,因为它们在mysql中是通配符:http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
htzpubme4#
这些语句中的许多语句将获得
%_12
或%_111121
等内容。请确保测试各种情况,以确保这些SELECT
语句为您提供了正确的子集。niknxzdl5#
kuhbmx9i6#
您可以快速使用此查询来过滤掉以特定字符结尾的字符串。
下面的查询输出将给予所有以“er”结尾的名称。
ulydmbyx7#
回答得好!
我的答案是从其他职位的延伸。
如果要过滤掉以特定字符结尾的数据,请使用
REGEXP
运算符。示例:下面的查询返回结束字符为元音-的所有字符串