MySQL: директива для всех столбцов для запуска через подстроку? - PullRequest
0 голосов
/ 31 декабря 2011

Я работаю с базой данных MySQL на CLI, в которой есть несколько строк, каждая из которых содержит сотни символов. Поэтому я использую подстроку (columnName, 1,20) для каждого запроса. Это утомительно! Могу ли я дать какую-либо директиву, чтобы все запросы запускали столбцы через подстроку?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 31 декабря 2011
CREATE VIEW TableStripped AS
SELECT AcolumnThatDoesntNeedStripping
     , BcolumnThatDoesntNeedStripping
     , ...
     , SUBSTRING(columnA, 1, 20)
     , SUBSTRING(columnB, 1, 20)
     , SUBSTRING(columnC, 1, 20)
     , ...
     , SUBSTRING(columnZ, 1, 20)

и затем используйте это представление:

SELECT *
FROM TableStripped 
2 голосов
/ 31 декабря 2011

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

2 голосов
/ 31 декабря 2011

Я бы создал для этого представление.

Например, если у вас есть таблица

CREATE TABLE t1 (long_column varchar(8000));

Я бы создал представление

CREATE VIEW v1 AS SELECT SUBSTRING(long_column, 1, 20) AS long_column FROM t1;

А затем переписать все запросы, чтобы использовать v1.long_column вместо SUBSTRING(t1.long_column, 1, 20).

...