butteff
@butteff
Раз в тысячу лет заправляю свитер в носки

Где ошибка в mysql запросе?

Есть запрос:

SELECT staff.name, phone.number, office.room FROM staff, phone, office WHERE staff.id1 = office.id3 AND office.room = 13 AND phone.number LIKE '13$'


Он выводит 0 строк.

Если убрать из него

AND phone.number LIKE '13$'

то выводятся строки, в том числе те, телефон которых оканчивается на 13.

Почему не работает запрос с регулярным? Что я делаю не так?
Задача - вывести сотрудников, чей телефон оканчивается на 13.
  • Вопрос задан
  • 2361 просмотр
Решения вопроса 2
EvgenijDv
@EvgenijDv
C/C++ programmer
Попробуйте так
AND phone.number LIKE '%13'
Ответ написан
Комментировать
Надо так:
'%13'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Судя по документации все правильно. Дайте дамп данных, может быть их там реально нет.
Ответ написан
Andkon13
@Andkon13
А что случилось с join'ом? Или их у нас тоже запретили?
Как в вашем запросе связаны таблицы phone и office?
На мой взгляд, правильный запрос:
select s.name, p.number, o.room from office o
join phone p on o.id = p.office_id -- (у вас это видимо id2)
join staff s on s.id1=o.id3
where o.room = 13
and p.number like '13%' -- тоже не совсем понятно зачем это условие, но пускай будет. Без него в выборку попадут все телефоны в комнате
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы