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

0

У меня две базы данных, я присоединяюсь к ним следующим образом:

select *
from business,activity 
where business.primary_activity_id = activity.id; 

Однако я хотел бы выбрать из этого объединенного запроса строки, в которых идентификатор (который был импортирован из таблицы активности) начинается с "01."

Я пробовал этот запрос:

select * 
from business,activity
where business.primary_activity_id = activity.id
    and identifier like "01.";

Ну, это не сработало. Пустой запрос.

Проверено вручную таблицу, и есть строки, где идентификатор начинается с "01." Может ли кто-нибудь просветить мое путешествие?

  • 1
    Пожалуйста, попробуйте добавить%. Идентификатор типа «01.%»
  • 0
    Спасибо @anonyXmous, это сработало
Показать ещё 1 комментарий
Теги:
join
sql-like

1 ответ

1
Лучший ответ

Хотя @anonyXmous ответил как комментарий, я хочу добавить еще несколько вещей.

Во-первых, символ подстановки для LIKE равен % чтобы соответствовать подстроке любой длины, включая нулевую длину. Подстановочный знак для одного символа - символ подчеркивания ('_').

Во-вторых, вы не должны использовать запятые в предложении from. Научитесь использовать правильный, явный синтаксис JOIN. Никогда не используйте запятые в предложении FROM.

В-третьих, псевдонимы таблиц облегчают запись и чтение запроса. И затем используйте их для определения всех имен столбцов.

В-четвертых, используйте одинарные кавычки для строковых констант. Так:

select b.*, a.*
from business b join
     activity a
     on b.primary_activity_id = a.id
where a.identifier like '01.%';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню