2016-09-29 135 views
0

我有A和Z 之间的值,我只想要选择的记录中,其中一个字符是> =“C”的列(char)的选择所有记录

谁能帮我这个? 我试过> ='C',但这没有奏效。在互联网上我也找不到这个。所以我认为这是一个很好的问题。

回答

3

您可以使用ascii值进行比较。

select * from tablename where ascii(colname) >= ascii('C') 
+0

非常感谢!是唯一的方法来做到这一点?或者你也知道一个不同的解决方案?只是出于好奇。 – Bas

+0

我想知道为什么'col> ='C''不适合你。那是另一种方式。 –

0

这里是另一种方法。

SELECT SUBSTRING_INDEX(YourColumn,'c',-1) FROM Yourtable; 
+0

是不是SUBSTRING打算只用于多个字符? – Bas

+0

它可以用来获取特定字符后面的字符串。看[链接](http://www.w3resource.com/mysql/string-functions/mysql-substring_index-function.php) –

0

字符串可以在MySQL与普通的比较操作符进行比较,所以这应该工作:

SELECT * FROM table WHERE col >= 'C'

请注意,字符串的确切排序顺序(主要是区分大小写)取决于你的字符集排序规则。也许这就是为什么它不适合你的原因。

您还可以使用ASCII()函数返回一个字符的字符值,并比较这些:

SELECT * FROM table WHERE ASCII(col) >= ASCII('C')

请注意,这仅适用于单字节字符。对于多字节字符,您必须使用ORD()而不是ASCII()

另一种方式是(再次使用您的字符集归类的排序顺序)使用STRCMP()用于比较两个字符串,返回0,如果字符串相同,-1,如果第一个参数小于第二个,和否则为1。

SELECT * FROM table WHERE STRCMP(col, 'C') >= 0