MySQL Макс. Ширина столбца (поля) - PullRequest
0 голосов
/ 07 августа 2020

У меня есть таблица MySQL ('maxtesttable'), полная пользовательской информации (сокращенная здесь для демонстрационных целей):

    SELECT * FROM maxtesttable;
    +-----+-----------+-------------+--------------+
    | uid | firstname | lastname    | phone        |
    +-----+-----------+-------------+--------------+
    |   1 | Abcdef    | Abcdefg     | 1234567      |
    |   2 | Abcd      | Abcde       | 123456789012 |
    |   3 | Abc       | Abcde-Fghij | 12345678     |
    |  14 | Abcd      | Abcdef      | 1234567890   |
    +-----+-----------+-------------+--------------+

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

С PHP это довольно просто: https://www.w3schools.com/php/func_mysqli_fetch_fields.asp

Однако я хочу используйте его в сценарии Python, и я надеюсь получить ответ из запроса MySQL.

Я ожидаю следующих результатов:

+-----+-----------+-------------+--------------+
| uid | firstname | lastname    | phone        |
+-----+-----------+-------------+--------------+
|   2 |         6 |          11 |           12 |
+-----+-----------+-------------+--------------+

Самый длинный «uid» в результате - «14» и состоит из 2 символов.

Самое длинное «имя» в результате - «Abcdef», оно состоит из 6 символов.

Самый длинный «Фамилия» в результате будет «Abcde-Fghij» и состоит из 11 символов.

Самый длинный «телефон» в результате - «123456789012», и он состоит из 12 символов.

Есть ли простой запрос MySQL, который даст такой результат? (или даже способ в Python оценить результат запроса и получить тот же ответ?)

Есть несколько предложений использовать «max (char_length (columnname))» в MySQL, однако я Я не силен в MySQL и ищу помощь.

Спасибо.

1 Ответ

2 голосов
/ 07 августа 2020

MAX(LENGTH(columnname)) делает именно то, что вы хотите.

SELECT 
    MAX(LENGTH(uid)) AS uid, 
    MAX(LENGTH(firstname)) AS firstname,
    MAX(LENGTH(lastname)) AS lastname,
    MAX(LENGTH(phone)) AS phone
FROM maxtesttable

Запрос будет одинаковым независимо от того, используете ли вы Python или PHP для его выполнения.

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