MySQL - альтернатива запуску нескольких (пользовательских) функций? - PullRequest
1 голос
/ 09 апреля 2020

В настоящее время у меня есть две пользовательские функции в запросе MySQL:

proper преобразует любой текст в правильный формат регистра (Джон Смит -> Джон Смит)

HTML_Unencode декодирует HTML сущностей (BB ' T -> BB & T).

Когда я запускаю оба вместе, это почти удваивает время выполнения запроса. Мне нужно решение, которое можно запустить из текущего запроса. Есть предложения?

SELECT
proper(HTML_UnEncode(`order`.`shipping_city`)) AS `City`
FROM `order`

Вход

Queébec

Выход

Québec

1 Ответ

1 голос
/ 10 апреля 2020

Как быстрее выполнять функции proper и HTML_UnEncode во время запроса? Я не знаю.

Но - я настоятельно рекомендую не делать это во время запроса. Вы вставляете строку один раз , но запрашиваете ее много раз . Так что оплатите стоимость во время вставки.

Другими словами - если вы можете - скорее сохраните Québec (а не Québec) в таблице. Тогда ваш запрос будет проще и быстрее

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