Приносим извинения за недостаток информации в моем вопросе. Я использую MS SQL. Я ищу 3 конкретных элемента в текстовом поле; IH-, MPC или ICC. Если какой-либо из этих элементов найден в текстовом поле, я хотел бы показать, что они были найдены. Если все три были найдены в первой строке, было бы поле, включающее IH-, MPC, ICC Вот мой запрос;Выбрать Как и если найдено, добавьте столбец, показывающий результаты
SELECT tt.TITLE, tt.ITEM_REFERENCE_ID, tt.VERSION, PATH_MAPPINGS.PATH, tt.CONTENT
FROM ITEM_REFERENCES INNER JOIN
PATH_MAPPINGS ON ITEM_REFERENCES.ORGANIZATIONAL_ITEM_ID = PATH_MAPPINGS.ORGANIZATIONAL_ITEM_ID INNER
JOIN
ITEMS AS tt INNER JOIN
(SELECT ITEM_REFERENCE_ID, MAX(VERSION) AS MaxVersion
FROM ITEMS
GROUP BY ITEM_REFERENCE_ID) AS groupedtt ON tt.ITEM_REFERENCE_ID = groupedtt.ITEM_REFERENCE_ID AND tt.VERSION = groupedtt.MaxVersion ON
ITEM_REFERENCES.ID = tt.ITEM_REFERENCE_ID
WHERE (tt.CONTENT LIKE '%<text>AP[0-2]%' )
or
(tt.CONTENT LIKE '%<text>IH-[0-2]%' )
or
(tt.CONTENT LIKE '%<text>MPC[0-2]%' )
or
(tt.CONTENT LIKE '%<text>ICC[0-2]%' )
На мой взгляд, это должно быть написано сценарием. MySQL просто не может динамически добавлять столбцы. Вы можете прокручивать все столбцы 'IF (title LIKE ..., 1, 0) AS matched_on_title и т. Д.' – twicejr
Зачем вам это нужно, не стоит ли добавлять все параметры, а затем в свои сценарий делает логическое сравнение? – twicejr