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

его можно использовать для получения строки после определенного символа. см. [link] (http://www.w3resource.com/mysql/string-functions/mysql-substring_index-function.php) –

0

Строки могут быть сопоставлены в MySQL с регулярными операторами сравнения, так что это должно работать:

SELECT * FROM table WHERE col >= 'C'

Обратите внимание, что точный порядок сортировки (в основном чувствительность к регистру) для строк зависит от CharacterSet сверка. Возможно, именно по этой причине это не сработало для вас.

Вы также можете использовать ASCII() функцию, которая возвращает значение символа из одного символа, и сравнить их:

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

Обратите внимание, что это работает только для отдельных символов байт. Для многобайтовых символов вы должны использовать ORD() вместо ASCII().

Еще один способ - использовать STRCMP(), который сравнивает две строки (опять же, используя порядок сортировки вашего набора символов) и возвращает 0, если строки одинаковы, -1, если первый аргумент меньше второго, и 1 в противном случае.

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

Смежные вопросы