Как использовать функцию «LIKE» в предложении «FROM» в MySQL - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь запросить конкретную таблицу на основе ввода пользователя и хочу запросить таблицу, которая содержит этот ввод пользователя в качестве search_id в имени.Например, имена таблиц структурированы как run_000000_search_000000_lda_000000, и я хочу получить таблицу с тем же идентификатором search_id, что и для вставленного значения.

Я знаю, когда в предложении Where используется «LIKE», выможет получить столбец с определенной строкой или int в имени.Тем не менее, я ничего не нашел при использовании его с предложением «FROM».

Определенный жестко закодированный запрос для search_id 50

SELECT *
FROM `run_000044_search_000050_lda_000366`;

Итак, как мне получить таблицу с таким жеsearch_id как тот, который вставил пользователь. Также попытка использовать run и lda для формирования полного имени таблицы не работает, потому что между этими 3 именами нет заметного шаблона.

Я также могу использовать динамический sqlно я не уверен, как это сделать.

Ответы [ 2 ]

1 голос
/ 01 июля 2019

После поиска в Интернете я наконец-то нашел решение.В infomation_schema.tables содержится столбец с именами таблиц.Отсюда вы можете запросить полное имя таблицы и использовать его в другом запросе.Я думаю, что полный пример облегчает понимание:

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME LIKE '%_search_000050_lda_%';

SELECT * FROM INFROMATION_SCHEMA.TABLES

^ выбирает таблицу, содержащую все имена таблиц, и

WHERE TABLE_NAME LIKE '%_search_000050_lda_%';

^ ищет во всех таблицах, что вцитаты.Замените «% _seach_000050_lda_%» на оператор Like, необходимый для таблицы

0 голосов
/ 01 июля 2019

LIKE обычно используется в предложении WHERE после FROM, например,

SELECT * FROM table_name WHERE field LIKE 'value';

. Вы также можете сравнить число или поле int с помощью оператора '=', который возвращает конкретную запись.

SELECT * FROM table_name WHERE id = 30;

если вы хотите извлечь детали из определенного набора записей другой таблицы, вы можете использовать метод подзапроса, например, обратиться по этой ссылке

, вы также можете использовать динамический sql query.refer по этой ссылке для динамического SQL-запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...