Строки могут быть сопоставлены в 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
спасибо! Это единственный способ сделать это? Или вы знаете другое решение? Просто из любопытства. – Bas
Интересно, почему 'col> = 'C'' не сработал для вас. это еще один путь. –