Как объединить две таблицы со столбцом, содержащим дополнительные символы в MySQL 5.7?

#mysql

#mysql

Вопрос:

У меня есть две таблицы

таблица 1: сборка

 build_id  |  build_name
----------------------
1         |  build_name_1_signed.bin
2         |  build_2.bin
3         |  build_34534_3_signed.bin
  

таблица 2: тест

 test_id  |   test_name     |  build_name
-----------------------------------------
1        |  test1          |  build_name_1_sometext_20245
2        |  test2          |  build_name_1_sometext
3        |  test3          |  build_2-sometext_sometext
4        |  test4          |  build_34534_3_sometext-sometext
  

здесь я хочу объединить вышеупомянутые две таблицы, используя build_name, имеющий одно и то же build_name, независимо от других символов, таких как build_name_1 = build_name_1_sometext_20245.

Проблема: Не удается использовать substr (), потому что длины не равны.

Я ищу что-то вроде

 select * from build b, test t where some_function(b.build_name) = some_function(t.build_name)
  

Как я могу этого добиться? Заранее спасибо.

Комментарии:

1. Я думаю, вам нужно дать нам несколько твердых правил для того, когда префикс каждого имени сборки должен заканчиваться. Даже при просмотре ваших данных неясно, как написать безопасный запрос для этого.

2. @TimBiegeleisen имя сборки имеет только две возможности, суффикс сборки может быть .bin или signed.bin

3. @arundeepchohan Нет, начальное имя имеет что угодно, кроме суффикса сборки, есть две возможности, такие как .bin или signed.bin в таблице сборки

4. Ваш вопрос неясен, и я не могу написать запрос только на основе того, что вы сказали здесь.

5. @TimBiegeleisen Я упомянул только данные таблицы сборки, имеющие два возможных суффикса. Здесь мы можем объединить столбец before .bin или signed.bin из таблицы сборки и проверить по имени сборки, что тестовая таблица содержит то же имя сборки. Я не могу этого добиться.