использовать «не нравится» в MySQL Show операторов - PullRequest
0 голосов
/ 07 мая 2018

У меня есть dropdownlist, который заполняется column names на основе имени таблицы, выбранного пользователем в предыдущем dropdown. Я использую следующий запрос

SHOW columns from abcTableName LIKE '%name' который работает

Я хочу, чтобы все включали имена всех столбцов, кроме нескольких столбцов. Поэтому я хочу запрос как этот

SHOW columns from abcTable NOT LIKE ('%name','%pk','%fk')  

который не работает. Четный

SHOW columns from abcTable NOT LIKE '%name'  

не работает

В настоящее время я запускаю два цикла для извлечения имен столбцов - outer loop для передачи имени таблицы и inner loop для передачи параметров в запрос, что занимает много времени. Я хочу оптимизировать его.

Может кто-нибудь предложить, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

использовать где пункт

SHOW columns from abcTable where field not like '%name'  

посмотрите на дополнения к SHOW https://dev.mysql.com/doc/refman/8.0/en/extended-show.html

0 голосов
/ 07 мая 2018

Вы можете использовать более формальный метод:

SELECT COLUMN_NAME
FROM information_schema.columns
WHERE 
    table_schema = '[database]' AND
    table_name = '[table_name]' AND
    COLUMN_NAME LIKE '%name' AND
    COLUMN_NAME NOT LIKE '%pk' AND
    COLUMN_NAME NOT LIKE '%fk';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...