Как использовать REPLACE в Mysql чтобы найти номер дома отбросив букву и иные символы
Я использую такую конструкцию но выдает ошибку
SELECT *
FROM `2` WHERE ulica like '%ул. Делегатская%' and REPLACE(REPLACE(dom,'д',''),'.','') = '25'
ошибка
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 0, 25' at line 2
но при простом SELECT REPLACE(REPLACE(dom,'д',''),'.','') = '25' FROM `2` все нормально отрабатывается
похоже я иду не тем путем
у меня есть ячейки, где написано д.1А, д.2, д.3 мне надо отобрать те ячейки, где есть 1 и 2. Но чтобы не захватить 11 и 22 например. Вот я и думаю отбросить все символы и сравнивать.
SELECT *
FROM `2` WHERE ulica like '%ул. Делегатская%' and REPLACE(REPLACE(dom,'д',''),'.','') = '25'
ошибка
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 0, 25' at line 2
но при простом SELECT REPLACE(REPLACE(dom,'д',''),'.','') = '25' FROM `2` все нормально отрабатывается
похоже я иду не тем путем
у меня есть ячейки, где написано д.1А, д.2, д.3 мне надо отобрать те ячейки, где есть 1 и 2. Но чтобы не захватить 11 и 22 например. Вот я и думаю отбросить все символы и сравнивать.
1 ответов
Поискал еще и нашел работающее решение, оно оптимальное? или есть лучше?
SELECT *
FROM `2` WHERE ulica like '%ул. Делегатская%' and TRIM('д.' FROM TRIM('А' FROM dom)) = '39'
Можно написать функцию которая например из текста будет выделять только цифры, или лучше первую группу цифр до какого-либо разделителя, чтобы не попался номер дробный или номер корпуса итп. Тогда запрос будет выглядеть как
SELECT *
FROM `2`
WHERE ulica like '%ул. Делегатская%'
fGetNumbers(dom) = 39