#php #mysql #sql #regex #where-clause
#php #mysql #sql #регулярное выражение #где-предложение
Вопрос:
Я пытаюсь создать mysql-regex SQL, который найдет любые строки с максимальной длиной — я могу сделать это в javascrtip, php и так далее — но по какой-то причине я могу заставить его работать в mysql
Пример строк:
- a12
- a123
- a1234
- a12345
- a123456
Итак, допустим, я хочу, чтобы мое регулярное выражение отображало ЛЮБЫЕ строки длиной 4 или менее — поэтому в приведенном выше примере мое регулярное выражение должно совпадать с 1 и 2.
Приведенный ниже код отлично работает при попытке найти любые строки выше определенной длины, но я не могу заставить его работать со строками ниже определенной длины.
([a-zA-Z])[0-9a-zA-Z]{20,}
я, очевидно, пытался сделать
([a-zA-Z])[0-9a-zA-Z]{0,6}
но по какой-то причине не работает
Комментарии:
1. Почему бы просто не использовать
length()
функцию, если это то, что вас волнует?
Ответ №1:
Я думаю, вы хотите:
^[a-zA-Z][0-9a-zA-Z]{0,3}$
Это соответствует строке, состоящей из буквенного символа, за которым следуют от 0 до 3 буквенно-цифровых символов. Одна важная вещь — совпадение по всей строке: это то, что делают якоря ^
(начало строки) и $
(конец строки).