Помогите с синтаксисом...

Amiddio

Новичок
Помогите с синтаксисом...

Задача:
Надо вывести записи из БД по определенному полю, которое начинаются на цифру (от 0 до 9)

SELECT * FROM table WHERE name_eng LIKE '???' ORDER BY name_eng ASC;

Что вписать в LIKE '???' ?

Я думаю можно использовать регулярные выражения. Помогите с запросом.
 

Фанат

oncle terrible
Команда форума
не нужно
тебе нужен метасимвол % который означает любое количество любых символов
 

Amiddio

Новичок
... но такое же не сработает: LIKE '09%' !!!
Мне нужны все записи начинающиеся на любую цифру
 

Фанат

oncle terrible
Команда форума
а, ну тогда отрезай первый символ через Left и сравнивай его с цифрой
 

Фанат

oncle terrible
Команда форума
это не в моих правилах.
что именно тебе непонятно? как пользоваться встроенными функциями? как сравнивать?
 

Amiddio

Новичок
как вырезать первый символ и посмотреть не цифра ли это...
 

Фанат

oncle terrible
Команда форума
как вырезать, написано в документации к функции LEFT
потрудись прочесть самостоятельно
 

Фанат

oncle terrible
Команда форума
в результате ты получишь выражение, которое можно подставить в условие where
where выражение between 0 and 9
неужели это так сложно?
 

Amiddio

Новичок
По идее это должно работать, но не работает

SELECT * FROM table WHERE LEFT('name_eng', 1) between 0 and 9

-~{}~ 09.06.05 16:08:

Выводит все записи
 

Фанат

oncle terrible
Команда форума
нет, по идее не должно
буква n не входит в диапазон от 0 до 9
 

Amiddio

Новичок
почему mysql не подставляет значение поля 'name_eng' и не выбирает первый символ?.. и как это сделать или где почитать?
 

kruglov

Новичок
а почему mysql должна подставлять значение поля, когда это строка в кавычках?
 

kruglov

Новичок
0 - это число, а '0' - это строка. и они друг-другу не равны. может это?
 
Сверху