|
Поиск через like сам в себе
|
|||
---|---|---|---|
#18+
Доброго времени всем. Ситуация. Есть такой инструмент Testrail. По умолчанию там MySQL и обычное дерево. Структура такова Таблица milestones содержит список версий , значимые поля id int(11), name varchar(250). На примере тестовых данных id | name 1 | Version 1 2 | version 2 3 | version 3 Таблица cases содержит список тестовых сценарий, значимые поля id int(11), milestone_id int(11), refs varchar(250), title varchar(250). На примере тестовых данных id | milestone_id | refs | title 1 | 1 | aaa | case 1 2 | 1 | aaa,bbb | case 2 3 | 2 | cccc | case 3 4 | 3 | bbb | case 4 Таблица cases связана с milestones через cases.milestone_id=milestones.id Тестовые сценарии могут быть от разных версий. Однако, существуют сценарии, которые присуще двум и более версиям. При этом у сценариев остается только первоначальная версия и добавляется ссылка на требования (поле refs). Без организации цикла как-то можно подзапросами выкрутится, чтобы найти те сценарии, у которых версия меньше чем нужна, однако есть ссылка на требования из нужной версии? По шагам получается: 1) сначала можно получить список уникальных refs select DISTINCT(refs) from cases where milestone_id in (select id FROM milestones where lower(name) like 'version%3%') and !ISNULL(refs) 2) затем выбрать все сценарии, у которых refs содержит данные из выборки 1, но имеет отличные версии select * from cases where refs in (шаг 1) and milestone_id not in (select id FROM milestones where lower(name) like 'version%3%') И тут главная проблема, что нужно не вхождение in, а поиск через like в цикле по данным из шага 1. В результате нужна строка с ID 2. Подскажите, как выкрутиться? Писать всё таки цикл или есть возможность через подзапрос это сделать. Заранее благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2020, 17:04 |
|
Поиск через like сам в себе
|
|||
---|---|---|---|
#18+
Glad_r как выкрутиться? Если структуру изменить невозможно, выкладывайте: - CREATE TABLE обеих таблиц (лишние поля поскипать); - INSERT INTO тестовых данных (ну хотя бы десяток записей); - требуемый результат на именно этих данных. Желательно пару-тройку (параметр-результат), моделирующих различные ситуации, если возможно. Ну и пояснения к тому,как получился именно такой результат, будут нелишними. Да, версию сервера не забудьте озвучить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2020, 20:33 |
|
Поиск через like сам в себе
|
|||
---|---|---|---|
#18+
Сервер mysql-server 5.5.55-0+deb8u1. Структуру изменить не получится. TestRail - продукт, который мы используем. Структура Код: sql 1. 2. 3. 4. 5. 6.
Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2020, 23:08 |
|
Поиск через like сам в себе
|
|||
---|---|---|---|
#18+
Ну а тестовые данные, на которых можно пробовать решение - будут? в формате INSERT INTO... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2020, 10:29 |
|
Поиск через like сам в себе
|
|||
---|---|---|---|
#18+
Akina Ну а тестовые данные, на которых можно пробовать решение - будут? в формате INSERT INTO... Доброго времени. Пожалуйста. Только пока что нет ни каких предложений. Код: sql 1. 2. 3. 4.
Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2020, 11:00 |
|
Поиск через like сам в себе
|
|||
---|---|---|---|
#18+
У меня, если я верно понял задачу (а она какая-то путаная и загадочная), получилось следующее: Код: sql 1. 2. 3. 4. 5.
fiddle . Есть, правда, нюанс - если в целевом refs окажется не одно значение, а несколько, получится фигня... я не зря просил смоделировать несколько возможных ситуаций. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2020, 12:11 |
|
Поиск через like сам в себе
|
|||
---|---|---|---|
#18+
Akina У меня, если я верно понял задачу (а она какая-то путаная и загадочная), получилось следующее: Код: sql 1. 2. 3. 4. 5.
fiddle . Есть, правда, нюанс - если в целевом refs окажется не одно значение, а несколько, получится фигня... я не зря просил смоделировать несколько возможных ситуаций. Значений refs может быть до пяти! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2020, 12:39 |
|
Поиск через like сам в себе
|
|||
---|---|---|---|
#18+
Збс... то есть в отобранном (с которым сверять) их может быть, скажем, 2, а в записи, которая в итоге выберется, скажем, 4? и что тогда сравнивать на вхождение - хотя бы один? обязательно оба? Русским же по белому пишу - "Желательно пару-тройку (параметр-результат), моделирующих различные ситуации, если возможно. Ну и пояснения к тому,как получился именно такой результат, будут нелишними.", - нет, блин, надо доить из тебя все условия по капле... Лично мне - надоело. Пока не будет чёткой, полной и непротиворечивой постановки задачи - пусть кто-нибудь ещё помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2020, 13:36 |
|
|
start [/forum/topic.php?fid=47&fpage=24&tid=1828679]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
198ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 298ms |
0 / 0 |