我想从数据库中选择mov_id列中最后一个字符等于1和2的行。
查询怎么样?
答案 0 :(得分:20)
SELECT * FROM `myTable` WHERE `mov_id` LIKE '%1' OR `mov_id` LIKE '%2'
%
字符是一个匹配任何内容的通配符(如许多其他地方的*
)
答案 1 :(得分:7)
如果mov_id
是数值(TINYINT,INT等等),那么您应该使用数字运算符。例如,使用模运算符保留最后一位数
SELECT * FROM mytable
WHERE (mov_id MOD 10) IN (1, 2)
如果mov_id
是字符串,则可以使用LIKE或SUBSTRING()。 SUBSTRING()会稍快一些。
SELECT * FROM mytable
WHERE SUBSTRING(mov_id, -1) IN ('1', '2')
如果你的表很大或经常运行查询,你一定要考虑在你的表中添加一个列,你可以在其中存储mov_id
的最后一个数字/字符,然后索引该列。
答案 2 :(得分:1)
也尝试这种方式:
Select feild1 from table where right(feild1,1) = 'x'
它显示最后一个值为x的字段。
答案 3 :(得分:0)
您还可以执行以下操作:
select your, fields, go, here from table where substring(mov_id, (char_length(move_id) - 1)) = x
答案 4 :(得分:0)
SELECT * FROM table WHERE mov_id
REGEXP'1 $'或mov_id
REGEXP'2 $'
答案 5 :(得分:0)
SELECT * FROM TABLE 在哪里(COLUMN_NAME,1)IN(' X')
如果你想匹配两个字符,只需将1替换为2。一般来说( COLUMN_NAME , NO_OF_CHARACTER_YOU WANT_TO_MATCH_FROM_LAST )
如果你想匹配起始字符,只需使用 LEFT而不是RIGHT