你如何从mysql中选择字符串中的最后一个字符= x?

6 mysql

我想从数据库中选择mov_id列中最后一个字符等于1和2的行.

查询怎么样?

nic*_*ckf 20

SELECT * FROM `myTable` WHERE `mov_id` LIKE '%1' OR `mov_id` LIKE '%2'
Run Code Online (Sandbox Code Playgroud)

%字符是一个通配符它(如匹配任何*其他许多地方)

  • 如果与 LIKE 的起始百分比匹配,索引将毫无用处。http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html“...不要使用索引...LIKE值以通配符开头。” (2认同)

Jos*_*vis 7

如果mov_id是数值(TINYINT,INT等等),那么您应该使用数字运算符.例如,使用模运算符保留最后一位数

SELECT * FROM mytable
WHERE (mov_id MOD 10) IN (1, 2)
Run Code Online (Sandbox Code Playgroud)

如果mov_id是字符串,则可以使用LIKE或SUBSTRING().SUBSTRING()会稍快一些.

SELECT * FROM mytable
WHERE SUBSTRING(mov_id, -1) IN ('1', '2')
Run Code Online (Sandbox Code Playgroud)

如果您的表很大或者经常运行查询,那么您应该考虑在表中添加一个列,您可以在其中存储mov_id最后一个数字/字符,并为该列编制索引.