Проверьте нижний регистр первого символа в строковом значении для MariaDB - PullRequest
0 голосов
/ 15 октября 2019

В моей среде MariaDB я хочу проверить, есть ли какие-либо значения в таблице «контакты» и столбце «имя», где первая буква в строковом значении - нижний регистр. Мой вопрос: это поможет?

  SELECT * FROM contacts
  WHERE (firstname) LIKE '%[abcdefghijklmnopqrstuvwxyz]%';

Ответы [ 2 ]

2 голосов
/ 15 октября 2019

MySQL не поддерживает синтаксис [...] с LIKE.

. Вы также можете использовать следующее условие, чтобы проверить, является ли первый символ имени первым строчным:

BINARY lower(left(firstname, 1)) = left(firstname, 1)  

Другойможно использовать регулярное выражение (короче, чтобы написать и легче понять):

BINARY firstname RLIKE '^[a-z]'

Обратите внимание, что оба выражения не будут использовать существующий индекс на firstname, так как функции или регулярные выражения вступают в игру.

0 голосов
/ 15 октября 2019

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

cast(firstname as binary) rlike '^[a-z]'

Или:

cast(left(firstname, 1) as binary between 'a' and 'z'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...