2016-09-29 139 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