#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 из таблицы сборки и проверить по имени сборки, что тестовая таблица содержит то же имя сборки. Я не могу этого добиться.